2016-08-21 66 views
0

实例日志图:git的承诺,以自定义父

A B 
|/ 
a 

诚征各地(尚未推)的工作流程:

  • 如果提交需要x只是分支A - 提交x进入分支A
  • 如果仅提交x仅用于分支B - 提交x进入分支B
  • 如果提交x需要为分支机构AB - 提交x上顶修订a,分行A的最近的共同祖先和B

最后一种情况应将对数图变成:

A B 
|/ 
x 
| 
a 

什么是简单完成这样一个工作流程的方式? (奖金,如果它在Emacs/Magit)

+0

我不明白你的速记。 'A'和'B'是不同分支的提示?是另一个分支吗? –

+0

@EdwardThomson'A'和'B'是不同分支的提示,'a'只是一个修订/提交 – xged

+0

您不能以任何方式改变提交的祖先而不重写它。 checkout a,commit x,rebase x A,rebase x B.没有办法隐藏别人的改动,他们将不得不重新提取和重新分配他们自己的任何工作。 – jthill

回答

3

创建基于a一个新的分支:

git checkout -b workbranch a 

进行更改,然后提交它们:

... 
git commit -m 'i made some changes' 

再次基于AB对你的工作分支:

git checkout A 
git rebase workbranch 
git checkout B 
git rebase workbranch 

删除workbranch如果你不' t需要它:

git branch -D workbranch 

根据需要重复。