2013-03-14 121 views
0

我们想要启动一个开源项目并将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上存储的更新。我们如何在不重新下载整个回购的情况下同步它?问题12:开发人员更新其本地存储库的频率如何?我可能会在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. 

Q3:什么事情发生?第一个提交者是否正常提交,第二个提交者会得到类似“文件已更改,请重新同步文件并在之后提交”的错误?

回答

2

问题1:您使用抓取或拉取从原始回购获取最新更改。第二季度:每次他们必须这样做,要么是因为他们想看到原始回购中发生了什么,要么因为git强迫他们这样做。事实上,如果你尝试推送到远程原始仓库,并且你的本地副本在它后面,git会强制你先更新你的本地副本,合并你的更改并重新绑定,然后再次推送。

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

我推荐读Pro Git,这既好又免费。

+0

丽莎你打算接受任何你的问题的答案吗? – AlienWebguy 2013-03-15 17:16:54

+0

@AlienWebguy我不在一段时间。没有选择答案,我不会留下任何问题。谢谢你提醒我。 – 2013-03-20 02:34:12

0

A1。你为什么需要这个?您可以执行git pull将存储库的更改拖到本地。哪里没有其他的方式来接收数据,只能取得整个变化

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

我总是在每个实现的功能后检查,因为许多开发人员在类似的文件上工作。我所做的更少的更改,更容易解决冲突。

A3。 Git不合并它合并源文件的函数。如果在文件开始时添加了A(),另一个在最后,所有东西都会成功合并,并且会有两个A()。

你应该合并或以推送到远程,在那里你HEAD

0

在响应您的要求为导向,将回答您的问题变基,我有几个建议。我是git的新手,但我一直在esper.net上的#git IRC中闲逛,吸收信息。以下是我发现我认为最有帮助的教程/指南。

  • Ry's Git Tutorial到目前为止我的最爱。非常清晰和简单的教程,指导你轻轻通过Git的每个方面。
  • Intro to Git不是最流畅的教程,但它有一个很棒的“备忘单”和许多有用的链接在底部。
  • try.github.com这是github的入门教程。正如你已经在本地使用它,这个链接会更好地帮助初学者。
  • gitolite.com/master-toc.html一个人关于使用git的广泛和相当密集的注释。

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

相关问题