当两个开发人员在同一个文件上工作并提交,更新等时会发生什么

时间:2013-03-14 15:42:48

标签: git github

我们想要启动一个开源项目并与我的朋友一起使用Git。我们知道Git,但我们之前只用它来分配东西。

假设我们已经创建了一个存储库。

情况1:

Both of us downloaded repository to our local computers to started working.
I've created A.php, with a function named A() in it. Committed.
My friend created B.php, with a function named B() in it. Committed.

Q1:我们的本地存储库未更新,但github存储库已更新。如何在不下载整个仓库的情况下同步它?

Q2:开发人员多久更新一次本地存储库?我可以在20:00更新它,但在20:05可能会有不同的提交。是否有更新本地回购的实时解决方案?与此情况下的Dropbox一样,您进行了更改并自动同步。

情况2

Me and my friend both started working on A.php. The file currently has function A(). 
I made a function called function B(), committed.
My friend also created a function called B() too. Committed.
第三季:将会发生什么?第一个提交者是否正常提交,第二个提交者收到错误,如“文件已更改,请再次同步文件并在之后提交。”?

3 个答案:

答案 0 :(得分:2)

Q1:您使用Fetch或Pull从原始仓库获取最新更改。

第二季度:每次他们必须这样做,或者是因为他们想要查看原始仓库中发生的事情,或者因为git强迫他们这样做。实际上,如果你试图推送到远程原始仓库并且你的本地副本就在它后面,git会强制你先更新你的本地副本,合并你的更改,然后再推。

问题3:是的,第二次推送将被拒绝。开发人员必须获取,合并或重新绑定,从而解决潜在的冲突,然后推送。

我建议阅读Pro Git,这既优秀又免费。

答案 1 :(得分:0)

A1。你为什么需要这个?您可以git pull将存储库的更改提取到本地。没有其他方式可以接收数据,只获取整个更改

A2。真的,你可以根据需要做到。如果您不需要其他功能,可能不会更新一段时间。如果你需要它 - 拉它。

我经常在每个实现的功能后检查,因为很多开发人员在处理类似的文件。我做的改动较少,更容易解决冲突。

A3。 Git不合并它合并源文件的函数。如果在文件开头添加A(),在结尾添加另一个,则所有内容都将成功合并,并且会有两个A()。

你应该合并或改组以便推送到遥控器,而不是HEAD

答案 2 :(得分:0)

为了回应您的回答问题的指南请求,我提出了一些建议。我是git的新手,但我一直在esper.net上的#git IRC中闲逛并吸收信息。以下是我发现我认为最有帮助的教程/指南。

  • Ry's Git Tutorial到目前为止我最喜欢的。非常简单明了的教程,可以指导您轻轻地完成git的各个方面。
  • Intro to Git不是最顺畅的教程,但它有一个很棒的“备忘单”,底部有许多有用的链接。
  • try.github.com这是github的入门教程。正如您已经在本地使用它一样,这个链接可以更好地帮助初学者。
  • gitolite.com/master-toc.html一个人关于使用git的广泛且非常密集的笔记。

希望这些链接有所帮助!我相信你的所有问题都可以通过这些教程来解答。