在与团队合作时,保持git repo的本地副本更新

时间:2015-10-13 21:11:32

标签: git github version-control

我正在为一个团队建立一个工作流程。将有一个主要的回购,并且将指示人们在github上分配回购,然后将其克隆到本地机器。提交代码更新的过程看起来非常像:

  • git checkout -b feature_branch#并在分支上做一些工作

经过一段时间后,我希望让人们确保他们的主副本是最新的,并要求他们这样做:

  • git commit feature_branch#保存他们所做的工作,以免丢失它(而不是git stash)
  • git fetch upstream
  • git checkout master
  • git merge upstream / master
  • git push origin master

问题:

然后该人如何使用新信息更新其feature_branch,因为他们分叉的主副本发生了变化?

是否使用git diff查看其功能分支与新主分支之间的差异并手动调整其功能分支?或者是让他们从新主分支创建一个新分支,并将代码从旧分支复制并粘贴到新分支?

这两个过程看起来有点笨拙/手动,但我看不到任何其他方式。

我找到了confirm the general process的答案,但没有讨论更新功能分支的最佳实践。

感谢。

2 个答案:

答案 0 :(得分:0)

他们可以做git fetch origin。然后查看所有最新的更改:git log -p HEAD ... origin。如果他们对这些变化感到满意,那么他们会做git merge origin

答案 1 :(得分:0)

在您的工作流程中,我可以看到您的团队从未将其功能分支推送到他们的分支,因此他们可以在本地中对其进行优化以获得与上游/主人约会的日期

以下工作流程:

Teammate在本地工作:

  • git checkout -b feature_branch
    • 做一些工作
    • git commit

Teammate使其分叉更新:

  • git fetch upstream
  • git checkout master
  • git merge upstream/master
  • git push origin master

队友使用上游的发展来更新其功能(在本地):

  • git fetch upstream
  • git checkout feature_branch
  • git rebase upstream/master(或者您刚刚执行了上一步:git rebase master

完成后,在将feature_branch推送到fork后,将功能分支从fork / feature_branch请求拉取请求发送到original_repo / master。

这样,您就不必git push --force

如果你已经将你的功能推到了前叉,你就必须这样做。