2011-05-16 66 views
1

我必须使用不同的计算机。我更新了文件A,B和其他文件在一个和B,C和其他文件在另一个。如何处理合并/拉入git

文件B中的更新是代码的不同部分。我已经承诺两个。 我把A和B推到了github上。

问题:

  • 现在我应该在另一个呢?

  • 我应该拉?或者我应该先推?

  • 如果我推,文件A会被覆盖?

  • 如果我拉,文件C会被覆盖?

  • 需要采取什么样的工艺?

  • 我需要做什么与文件B有不同的版本?我可以合并它们吗?

回答

0

通常的情况是,你做一个拉你推你的更改。但是可能会出现这种情况,即当前祖先的提交与最后一次提交时相同(即所有其他提交者尚未推送任何内容),这意味着不需要合并,只需推送您的更改即可,而无需拉。

一旦有人推动了他们之间的变化,那么你总是不得不把他们的变化拉入你的(这是git创建所谓的合并提交,这是一个没有被创建的提交通常的方式与git add,git commit等)。现在您的存储库与最新的更改同步,您可以安全地将中央存储库与您的存储库同步。

在这种情况下,您必须先拉出,这意味着C不会被覆盖,因为这两个存储库具有相同的版本(请记住,您只在两个回购站上更改了B)。

在B的情况下,如果你有两个不同的版本必须由git合并,可能会有冲突。但这正是一个拉动,它是一个获取(同步你的仓库)和你的本地分支之间的合并,跟踪远程分支,例如master与origin/master合并。

最后A会发生同样的事情,在A的第一个回购中所做的更改将在另一个存储库中进入A的微不足道的合并,因为修改后的A是从相同版本(相同的斑点) A在其他回购中。

希望这清除了一些东西了。

干杯!

2

你必须先拉,让你的添加是对的什么是在服务器上面。一旦你拉(将合并之前推MODS与你的本地MODS),然后你可以推。 BTW:这不是github,这是纯粹的git。我建议以下书籍来了解git的工作原理:

http://book.git-scm.com/

+0

只需要注意,如果您必须先进行拉动,推动将失败。 – 2011-05-16 21:50:12