相关疑难解决方法(0)

我怎样才能一次折叠多个分支?

我目前正在开发一个SVN用作存储库的项目.在本地,我用代码进行了几次"实验",我不想承诺回购.因此,我在SVN工作目录的顶部本地使用git,并使用多个分支进行不同的"实验".所以它看起来像这样.

C0 ---- C7 (master)
 \
  \---- C1 ---- C2 ---- C4 (exp1)
   \     \       \
    \     \       \---- C3 (exp2)
     \     \
      \     \---- C5 (exp3)
       \
        \---- C6 (exp4)
Run Code Online (Sandbox Code Playgroud)

在分支上master我想要有无污染的SVN回购,即C0是SVN Repo Revision x,C7是SVN Repo Revision x + n.

以某种方式很容易地将所有exp分支重新固定到C7上,使树看起来像下图?

C0 ---- C7 (master)
         \
          \---- C1' ---- C2' ---- C4' (exp1)
           \     \         \
            \     \         \---- C3' (exp2)
             \     \
              \     \---- C5' (exp3)
               \
                \---- C6' (exp4)
Run Code Online (Sandbox Code Playgroud)

我想使用rebase,因为我不想修改本地SVN Checkout的状态,并希望我的更改建立在SVN修订版之上.

我也对在SourceTree中工作的解决方案感兴趣,而不必使用shell.

git atlassian-sourcetree

38
推荐指数
4
解决办法
7136
查看次数

git rebase分支与所有子分支

是否可以使用git中的所有子分支来重新分支一个分支?

我经常使用分支作为快速/可变标记来标记某些提交.

* master
*
* featureA-finished
*
* origin/master
Run Code Online (Sandbox Code Playgroud)

现在我想rebase -i master进入origin/master,改变/重新提交提交featureA-finished^

之后git rebase -i --onto origin/master origin/master master,我基本上希望历史是:

* master
*
* featureA-finished
* (changed/reworded)
* origin/master
Run Code Online (Sandbox Code Playgroud)

但我得到的是:

* master
*
* (same changeset as featureA-finished)
* (changed/reworded)
| * featureA-finished
|.* (original commit i wanted to edit)
* origin/master
Run Code Online (Sandbox Code Playgroud)

有没有办法绕过它,还是我坚持在新的重新提交的作品上重新创建分支?

git branch rebase

17
推荐指数
2
解决办法
3321
查看次数

标签 统计

git ×2

atlassian-sourcetree ×1

branch ×1

rebase ×1