我们在 Github 上托管了一个项目,其主要开发分支称为“Master”。 一些开发人员倾向于将项目分支 merge 到Master中。而其他人则倾向于将 Master merge 到项目分支中。
在我看来,前者遵循标准协议(protocol)。后者根本就没有意义。我只是偏执,还是真的有影响?
为了复合,项目分支将与 merge 的主分支一起推回 github
对于那些将 Master merge 到项目中的人来说,争论的焦点是他们需要 Master 的最新副本。我的答案; merge 与它有什么关系?也许是为了获取其他人引入并 merge 到 master 中的更改?
这个过程不应该是: 1) checkout 师傅, 2) git fetch 或 git pull
最佳答案
对于开发人员来说,时不时地将主分支 merge 到他们的项目分支中是完全有意义的,以确保他们不会做一些一旦 merge 就无法工作的事情。这通常发生在他们的本地存储库中。
然后,当他们完成新功能后,他们会将其 merge 到 master 中,然后推送,这会将该功能添加到公共(public)存储库的 master 分支中。或者他们只是将其功能分支中的内容推送到公共(public)存储库的主分支。
git fetch
只是一种从远程获取存储库的方法。它根本不会进行 merge 。 git pull
会做同样的事情,但还包括 merge 。
因此,您建议的过程最多只会将公共(public)主分支的更改与本地主分支 merge 。然后,开发人员仍然需要将其本地(现在是最新的)主分支与其功能分支 merge ,否则他们将无法执行上述健全性检查。
关于Git merge 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7171371/