当两个人提交到GitHub仓库时会发生什么?

3

我在这里试图理解一些理论基础——当两个人从GitHub项目的原始形式开始工作(“提交相同的存储库”?)时,如果他们都对同一行进行更改,然后上传更改后的文件(“分叉”?),会发生什么?

是否会覆盖先前人的更改?这是我第一次使用git,我已经阅读了介绍性书籍,了解了版本控制系统的结构,但想知道这是如何处理的。


不是分叉。他们的提交将被合并。 - undefined
1
阅读《Pro Git》,http://git-scm.com/book。 - undefined
1个回答

9

如果两个人在任何其他服务器上提交,他们的更改将由最后一个推送的人合并(服务器不执行任何合并操作,所有操作都由用户完成!)。

通常,如果他们都修改了同一行,则可能会发生以下几种情况:

  • 尚未提交其更改的用户需要在从服务器拉取时存储其更改或合并其更改
  • 较新的更改是已提交的更改(如果该用户在进行更改之前先拉取)

无论如何,git非常好地处理合并,并且大多数情况下会自动完成。当您确实需要手动完成时,git会指导您完成。


如果更改非常大,而且每次只更改了一部分行,这对于协作来说不是一个好的设置,对吗? - undefined
它会被合并。如果你想要合作,你应该使用某种形式的版本控制。Git是其中一个更受欢迎的选择。它们基本上都做同样的事情,只是以不同的方式进行,并且有些比其他的更高效。 - undefined
1
谢谢Matt,我还在阅读文档,但是你的回答很有帮助。 - undefined
1
澄清一下,你的回答让人觉得服务器会将“他们的更改合并在一起”。实际上,其中一个用户需要合并这些更改,然后推送合并结果。 - undefined
我想我会只使用名为Liveshare的VSCode扩展。我在思考如果第一个人添加了某些内容,然后第二个人在代码文件中删除了同样的文本,那么这将如何运作? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接