2012-03-12 44 views
0

我的工作流程如下:有一个叫做develop的主分支,它应该总是有合格的测试。在功能工作时,我创建了一个新的分支与这张票的工作:如何在下面的场景中更有效地使用git rebase

git checkout -b feature_name 

然后为它创建一个远程跟踪分支:

git push -u origin feature_name 

然后我一直在犯这个分支,有时我从开发合并到这个:

git checkout develop; git pull; git checkout feature_branch; git merge develop 

这样分支不断从develop分支得到更新。

当我做了,我合并这个分支到开发和推动:

git checkout develop; git pull; git merge feature_branch; git push 

它使用git的拉动战略合并。但是当我这样做时,有时我的承诺会显示在顶部,有时候会在其他地方显示,有时会散布,所以很难看到我做了什么。我想知道如何在上面的scanario中使用rebase,以便我的提交历史显示在最前面。

回答

1

只是将git merge develop更改为git rebase develop

1

在第三行中改变你的工作流程,

git rebase origin/develop

,并在年底

git checkout develop; git pull; git rebase feature_branch; git push;

的说明:重订只会没有问题的工作,如果你不远程变基提交。你不想改变远程历史,是吗?

+0

我根本不使用rebase,所以我不重置远程提交! – umar 2012-03-12 07:30:18

+0

因此,根据你的回答,在我的工作流程中,我用git-rebase命令替换了所有的git-merge命令,那就是了? – umar 2012-03-12 07:30:54

+0

复制你的项目并在没有'git push'的情况下尝试这些命令。在这种情况下,你不会搞乱你的遥控器。 (如果我尝试新的 - 也许是破坏性的功能,我总是这样做)。如果你重新绑定,你的历史将会更清晰,因为没有合并提交。如果你重新起源,那么你不必结账/拉/结帐/合并。 – Vili 2012-03-12 07:37:16