如何使用master提交从master更新分支?

时间:2015-12-12 08:19:20

标签: git

与队友一起开始使用git,无法掌握如何使用分支机构 有一个“master”分支,我创建了一个分支“B”来处理module
另外,我必须经常从master分支获取某些 java类的更改(获取?)。

如何实现这一目标?或者使用git是一种错误的方法吗?

2 个答案:

答案 0 :(得分:4)

如果您的模块分支必须保持最新的主内容,您可以:

  • git fetch(将获取每个origin分支)
  • git checkout B(您在“模块”分支中)
  • git rebase origin/master(重播你在原点/主人之上的那个分支的提交)

如果您在分支机构中处理的文件与主机中的更新文件不同(没有冲突),那么效果很好
此外,只有当你是唯一一个在该分支上工作的人时,它才有效,因为它改变了它的历史记录(如果其他人已经从同一个分支中撤出,这是不方便的。)
如果没有,您需要通过以下方式替换最后一步:

git merge origin/master

您可以在“Learn Git Branching”中看到更多git分支。

请注意,git fetchgit pull与包含主人更新的问题是分开的 git pull仍然会抓取,并将origin/B合并到B:您仍需要合并origin/master(如果您在B独自一人,则需要重新合并)从master获取最新的演变到你的分支B

如果您是处理B的多个用户,那么git pull --rebase实际上更好,因为它会在origin/B之上重放您的本地(未删除)提交(避免不必要的合并提交) )。同样,这与origin/master无关:仍然需要git merge origin/master才能将master的演变纳入B

答案 1 :(得分:1)

有很多方法可以做到,我会提出其中一个。

所以,假设您拥有从主人创建的分支B.您的队友在其他地方进行了一些更改,这些更改最终都在master中,因此您也需要在B中进行这些更改。你需要做的第一件事就是获取那个主人所在的遥控器(例如原点):

git fetch origin

运行此命令后,您的本地git将了解已在原点中执行的更改。现在你需要将这些更改合并到B.一种方法是通过git rebase:

git rebase origin/master

此过程可能会导致冲突,您需要修复这些冲突。修复冲突不是这个问题的重点,但您可能希望在https://git-scm.com/docs/git-rebase中阅读--skip, - abort和--continue。