如何通过git让我的分支与master保持同步?

Nic*_*ard 119 git github

我的主人有一个错误修复,我也希望我的分支能够解决这个问题.git我用什么命令?

Joh*_*oty 159

假设您在掌握所有更改时很好,您想要的是:

git checkout <my branch>
Run Code Online (Sandbox Code Playgroud)

将工作树切换到您的分支; 然后:

git merge master
Run Code Online (Sandbox Code Playgroud)

将master中的所有更改与您的所有更改合并.

  • 可能推荐一个初始的"git checkout master; git pull"以确保本地主分支是最新的.通常很明显,但...... (14认同)
  • @Nic - 正确,这不会修改master. (12认同)
  • 这只是将我的主人的变化添加到我的分支中,让主人独自一人,对吗? (5认同)
  • 作为主检出/合并快捷方式,您可以只执行“git pull origin master”来将服务器主控/合并到本地检出分支吗? (4认同)
  • @Nic - 这将引入master的所有提交,而不仅仅是bug修复.确定这是否是您想要做的. (3认同)

Che*_*tan 61

如果您的分支仅为本地分支且尚未推送到服务器,请使用

git rebase master
Run Code Online (Sandbox Code Playgroud)

否则,请使用

git merge master
Run Code Online (Sandbox Code Playgroud)

  • 因为它修改了提交历史记录,并且您不希望将修改后的搜索历史记录推送到服务器. (18认同)
  • 为什么只有在本地分支机构的情况下才可以重新设置基准? (2认同)
  • 如果您使用 svn 存储库作为远程存储库(通过“git svn”),那么“git rebase master”就是保持线性历史记录的方法,这就是 svn 所理解的。 (2认同)

man*_*lds 15

您可以使用cherry-pick来获取特定的错误修复提交

$ git checkout branch
$ git cherry-pick bugfix
Run Code Online (Sandbox Code Playgroud)