2012-02-16 90 views
12

我想创建一个单一的提交,将使当前分支内容(和隐式同步)与另一个分支相同。创建提交覆盖当前分支内容与另一个

这实际上相当于将当前分支顶部的另一个分支的结帐内容粘贴并一次性提交所有内容。

回答

18
$ git reset --hard <another branch> 
$ git reset --soft [email protected]{1} 
$ git commit 

第一个(硬)重置将其他分支的内容抓取到您的工作目录中。第二次(软复位)将您的提交指针放回原始分支的顶端,但根本不会更改索引中的文件,从而将它们留在其他分支中。然后,您可以在当前分支的最新提交之上提交该状态。

+0

第一条命令后,由于<当前分支>已被更改,所以第二条命令不执行任何操作。我所做的就是使用'git reset --soft origin/current-branch',这是我所期望的。 – Nick 2012-02-16 08:44:47

+0

对不起,是的,通过'当前分支'我的意思是在你的问题中插入你称为'当前分支'的分支。 :)我编辑它只是使用'HEAD @ {1}'代替,这将会产生正确的效果。 – Amber 2012-02-16 08:45:57

+0

我们走了 - 非常感谢您分享您的xp w/us :) – Nick 2012-02-16 08:48:56

相关问题