2016-06-21 53 views
0

我的本地分支someNewFeature错误分歧。Git按顺序合并发散分支

运行git状态,表明这一点:

$ git status      
On branch someNewFeature 
Your branch and 'origin/someNewFeature' have diverged, 
and have 8 and 1 different commit each, respectively. 
    (use "git pull" to merge the remote branch into yours) 
nothing to commit, working directory clean 

的git的承诺树为当地的分支机构是这样的:

* jjjjjjj commit 10 
* iiiiiii commit 9 
* hhhhhhh commit 8 
* ggggggg commit 7 
* fffffff commit 6 
* eeeeeee commit 5 
* ddddddd commit 4 
* ccccccc commit 3 
| * bbbbbbb Diverged commit 
|/ 
* aaaaaaa Base commit 

我想通过应用所有提交顺序,以解决分歧,即它应该看起来像这样:

* jjjjjjj commit 10 
* iiiiiii commit 9 
* hhhhhhh commit 8 
* ggggggg commit 7 
* fffffff commit 6 
* eeeeeee commit 5 
* ddddddd commit 4 
* ccccccc commit 3 
* bbbbbbb Diverged commit 
* aaaaaaa Base commit 

Bo nus:如果你能猜到我可能怎么做到这一点,我会很感激你的洞察力。

+0

你确定提交通过引用'bbbbbbb'采用的是按时间排序的所有其他提交过吗? – Makoto

+0

是的,我是。我今天早上做了这项工作。 – Morgoth

+0

在你做了一些修改(提交'dddd..jjjj')到你本地的'someNewFeature'分支之后,'cccc'是一个由'git pull origin/someNewFeature'产生的合并提交吗? –

回答

1

您是否尝试过一个简单的git rebase someNewFeature origin/someNewFeature

+0

为什么downvote?这似乎达到了他们所描述的他们想要的,把所有提交放在原产地/ someNewFeature上“我想通过依次应用所有提交来解决分歧,即它应该看起来像这样:” – DavidN

+0

我没有得到它也是。对我而言,这是一个基本问题和基本答案。我还计划回答使用rebase :) – bhdrkn

1

如果你怕弄乱你的仓库,而不是你的Git命令肯定,我建议GitUp对git仓库工作。它通过可视化具有所有合并/重组功能。它还具有撤销/重做功能,所以如果你搞砸了某些东西,你总是可以恢复原状。你甚至可以重新订购你的提交。

另外这里是一个CLI的答案:据我所知,你有一个名为someNewFeature的本地分支,你正在接近8个提交。但是在远程分支上,其他开发人员会推动一些更改。你想要得到它们并重新应用你的变化。为了做到这一点,你可以当你在你的someNewFeature分支运行此命令:

git pull --rebase origin someNewFeature