git变化的冲突

时间:2011-02-12 23:24:42

标签: git conflict

我是git的新手,它说它的一个功能是一切都是本地的,所以你不在线时提交更改。

如果您离线,进行多项更改,提交等等,会发生什么。几分钟后,在您重新上线之前,另一个人会进行更改,其中一些更改位于同一个位置。他们都没有意识到他们做了相同/类似的改变。将更改推送到服务器时会发生什么? 哪些变化“放入”

3 个答案:

答案 0 :(得分:4)

第一个推送到共享存储库的人可以毫无问题地推送他们的提交。当第二个人试图推动他们的更改时,git会检测到冲突并拒绝推送。然后第二个人必须首先拉出第一个人的更改并将它们合并到他们的本地存储库中。成功合并后,person 2会将合并的更改推送到共享存储库。

答案 1 :(得分:2)

Git非常聪明,如果你有无根据的变化,它永远不会让你推动。

在这种情况下会发生什么,你必须拉,在这个拉git将尝试合并您的更改与服务器中的更改(由另一个人同时完成)。

如果它能够自动合并更改,则不会发生任何事情。如果它不够聪明,它会给你一个你必须解决的冲突,git有一个非常聪明的方式表达冲突,它们通常很容易修复。

您可以在这里找到解决冲突的官方手册:http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#resolving-a-merge

答案 2 :(得分:0)

首先进行更改。然后当您尝试提交更改时,git将尝试合并,如果git不成功,则提交将返回错误,并且您的源文件将标记在存在冲突的区域中 - 你会看到每个相互冲突的变化。您必须完成每个冲突并选择要提交的正确更改。