问题:几个人如何与GIT合作?是否像SVN一样更新提交或合并默认值?合并时,谁应该作为合并提交的作者出现?
很多背景信息:我正在和另一个人一起写一篇关于LaTeX的论文,我们正在使用GIT进行版本控制。
从一开始我们就决定我们都会在主分公司工作,因为我们无论如何只有两个人。
我做了很多提交。然后他做了一个旧版本的提交,并合并了我的最后一个版本和最近的版本(在他的提交之后)。用图片更容易看到:
对我来说,以这种方式进行合并是很奇怪的,如果我没有弄错,他应该先拉,然后提交,合并应该在两个不同的分支之间进行。
最奇怪的是,我的提交在任何时候都不会删除,但内容在最新提交中显示为新的,并且他显示为作者。这看起来像一个错误,但说实话我真的不明白这里发生了什么。
所以问题是:
这是一个错误吗?
我们是否应该使用分支机构单独工作?如果他不把它们推到服务器上,我可能会忽略他的提交。
他是否正确使用了系统,或者他是否在提交SVN之前做过拉动(更新 - >提交)?
最后,我做了一个分支,一个提交和一个合并(这还没有在图片中),可能同样的事情会再次发生,因为现在主人更新了,他可能会忽略这些更新,提交,然后合并为作者。
这对我来说不合适,但我不知道它是否正确。
恕我直言:在将更新推送到共享存储库之前,应在本地完成合并,如更新提交方式。
答案 0 :(得分:3)
我们是否应该使用分支机构单独工作?
是的:他应该在推送他的更改之前完成git pull --rebase
(对于尚未推送的分支),此时您可以将其分支合并为简单的快进合并。<登记/>
另请参阅merge vs. rebase和similar blog post。
(来自Git Is Your Friend not a Foe Vol. 4: Rebasing)
更一般地说,是的,在推送之前在本地合并。