GIT中的冲突解决或冲突避免?

时间:2013-07-23 18:39:09

标签: git git-merge git-rebase

问题:几个人如何与GIT合作?是否像SVN一样更新提交或合并默认值?合并时,谁应该作为合并提交的作者出现?

很多背景信息:我正在和另一个人一起写一篇关于LaTeX的论文,我们正在使用GIT进行版本控制。

从一开始我们就决定我们都会在主分公司工作,因为我们无论如何只有两个人。

我做了很多提交。然后他做了一个旧版本的提交,并合并了我的最后一个版本和最近的版本(在他的提交之后)。用图片更容易看到: Sample repository history.

对我来说,以这种方式进行合并是很奇怪的,如果我没有弄错,他应该先拉,然后提交,合并应该在两个不同的分支之间进行。

最奇怪的是,我的提交在任何时候都不会删除,但内容在最新提交中显示为新的,并且他显示为作者。这看起来像一个错误,但说实话我真的不明白这里发生了什么。

所以问题是:

这是一个错误吗?

我们是否应该使用分支机构单独工作?如果他不把它们推到服务器上,我可能会忽略他的提交。

他是否正确使用了系统,或者他是否在提交SVN之前做过拉动(更新 - >提交)?

最后,我做了一个分支,一个提交和一个合并(这还没有在图片中),可能同样的事情会再次发生,因为现在主人更新了,他可能会忽略这些更新,提交,然后合并为作者。

这对我来说不合适,但我不知道它是否正确。

恕我直言:在将更新推送到共享存储库之前,应在本地完成合并,如更新提交方式。

1 个答案:

答案 0 :(得分:3)

  

我们是否应该使用分支机构单独工作?

是的:他应该在推送他的更改之前完成git pull --rebase(对于尚未推送的分支),此时您可以将其分支合并为简单的快进合并。<登记/> 另请参阅merge vs. rebasesimilar blog post

git pull rebase

(来自Git Is Your Friend not a Foe Vol. 4: Rebasing

更一般地说,是的,在推送之前在本地合并。