Git 当两个开发人员处理同一个文件并提交、更新等时会发生什么
我们想和我的朋友一起启动一个开源项目并使用Git。我们知道Git,但我们只在单独工作之前使用它来分叉东西 假设我们已经创建了一个存储库 情景1:Git 当两个开发人员处理同一个文件并提交、更新等时会发生什么,git,github,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 funct
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.
问题1:我们的本地存储库没有更新,但github存储库已经更新。我们如何在不再次下载整个回购协议的情况下进行同步
问题2:开发人员多久更新一次本地存储库?我可能会在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:将会发生什么?第一个提交人是否正常提交,第二个提交人是否会收到类似“文件已更改,请再次同步文件并在之后提交”的错误?Q1:您可以使用Fetch或Pull从原始repo获取最新更改 问题2:每次他们都必须这么做,要么是因为他们想看看原始回购协议中发生了什么,要么是因为git迫使他们这么做。事实上,如果您试图推送到远程原始回购协议,而您的本地副本在其背后,git将迫使您首先更新本地副本,合并更改的重定基础,然后再次推送 问题3:是的,第二次推送将被拒绝。开发人员必须获取、合并或重新设置基础,从而解决潜在的冲突,然后推送
我推荐阅读,它既优秀又免费。A1。你为什么需要这个?您可以执行
git pull
将存储库的更改拉到本地。这里没有其他接收数据的方法,只有获取整个更改
A2。真的,你可以根据需要做。如果您不需要其他人的功能,则可能暂时不进行更新。如果你需要它-拉它
我总是在每一个实现的特性之后进行检查,因为许多开发人员都在处理类似的文件。我所做的更改越少,解决冲突就越容易
A3。Git不合并函数,而是合并源文件。如果一个在文件的开头添加一个(),另一个在文件的结尾添加一个(),则所有内容都将成功合并,并且将有两个A()
您应该合并或重新设置基址,以便推到远程位置,而不是您的头部。为了响应您对指南的请求,这些指南将回答您的问题,我有一些建议。我是git新手,但我一直在esper.net上的git IRC里闲逛,吸收信息。以下是我认为最有帮助的教程/指南
- 到目前为止我最喜欢的。非常清晰和简单的教程,引导您轻松了解git的各个方面
- 不是最流畅的教程,但它有一个伟大的“备忘单”和许多有用的链接在底部
- try.github.com这是github的入门教程。由于您已经在本地使用它,此链接将更好地帮助初学者
- gitolite.com/master-toc.html一个人关于使用git的大量而密集的笔记
希望这些链接有帮助!我相信你所有的问题和更多的问题都可以通过这些教程得到解答。Lisa你打算接受你任何问题的答案吗?@AlienWebguy我离开了一段时间。没有选择答案,我不会留下任何问题。谢谢你提醒我。