我必须使用不同的电脑。我在一个文件中更新了文件A,B和其他文件,在另一个文件中更新了B,C和其他文件。
文件B中的更新是代码的不同部分。我两个都承诺过。 我把A和B推到了github。
问题:
现在我该怎么办?
我应该拉吗?或者我应该先推?
如果我推,文件A会被覆盖吗?
如果我拉,文件C会被覆盖吗?
我需要采取什么样的流程?
对于具有不同版本的文件B,我需要做什么?我可以合并吗?
答案 0 :(得分:2)
您必须首先进行拉动,以便您的添加功能位于服务器中。一旦你拉(它将以前推送的mod与你的本地mod合并),那么你可以推。 BTW:这不是github,这是简单的git。我建议以下书来理解git的工作原理:
答案 1 :(得分:1)
拉 - > rebase - >推:http://learn.github.com/p/rebasing.html
答案 2 :(得分:0)
通常的情况是,在推升更改之前先进行拉动。但可能是你的提交的当前祖先是相同的,因为你最后一次拉(即所有其他人还没有推送任何东西),这意味着不需要合并,你只需推送你的更改而不需要拉。
一旦其他人推动了他们之间的更改,那么你总是必须将他们的更改提取到你的更改中(这是git创建所谓的合并提交的地方,这是一个未按常规方式创建的提交git add,git commit等)。现在,您的存储库与最新的更改同步,您可以安全地推送中央存储库与您的同步。
在这种情况下,你必须先拉,这意味着C不会被覆盖,因为两个存储库都有相同的版本(记住,你只在两个存储库中更改了B)。
对于B,你有两个必须由git合并的不同版本,可能会有冲突。但这正是拉动,它是一个提取(同步您的存储库)和跟踪远程分支的本地分支之间的合并,例如, master与origin / master合并。
最后A会发生同样的事情,第一个回复到A的变化将是一个简单的合并到另一个存储库中的A,因为修改后的A是从A的相同版本(相同的blob)修改的在另一个回购中。
希望这能清除一些东西。
干杯!