合并分支到主人

时间:2014-02-13 22:29:02

标签: git

我有两个分支:masterfeature。我在feature分支中做了几次提交,这使得大量的目录结构发生了变化。执行此操作后,我checkoutmaster分支,并在根目录中添加了README.md。这是我在创建master分支后对feature所做的唯一更改。

我现在想要将master分支“快速转发”到feature(即feature中的所有更改现在都在master),但我还希望添加master添加README.md。我如何完成这项任务?

3 个答案:

答案 0 :(得分:3)

您正在寻找git merge <branchname>。这会将更改合并到当前签出的分支中。所以:

git checkout master
git merge feature

由于您在master分支(添加自述文件)之后对feature进行了更改,因此这将作为“合并提交”完成。这意味着它将自动合并然后创建提交。如果您没有更改master,您的分支将被简单地快速转发到feature的当前提交。

答案 1 :(得分:1)

使用git merge命令,根据git help执行此操作:

  

合并来自命名提交的更改(从他们的时间开始)   历史与当前分支不同)进入当前分支。

因此,请在master上提交您的更改,然后git merge feature

答案 2 :(得分:1)

当您对主分支进行更改时,它不会是快进的。您可以退回最后一次更改(git reset HEAD^),将其存储起来以便稍后(git stash),合并您的功能(git merge feature),将更改应用于顶部(git stash apply; git commit .... })。有更简单/更狡猾的方法来实现这一目标,但这很容易理解。 如果你真的只是添加文件,你可以退一步,进行合并,然后再添加文件。

小心,这会改变历史。如果您通过更改发布了主分支,那么对于跟踪回购的人来说,这将不是一个快速前进。感谢@SamSullivan指出这一点。