2012-04-07 178 views
0

我是git的新手,并且想要了解如何在使用git的项目上与几位朋友进行协作。我的问题是试图了解如何“更新到HEAD(像在SVN中)”在git中。我理解git有点不同,我会很感激任何帮助。Git的版本更新到HEAD

所以考虑这种情况。有人A和人B.人A通过增加1来改变文件。他然后执行:

  1. 提交的关于他自己的分支
  2. 切换到主
  3. 拉原点主
  4. 混帐合并personAbranch
  5. 混帐推起源主

所以,到目前为止, ,这是可行的,就像在GitHub上一样,存储库已经更新了Person A的更改。

现在,假设在这整个时间里,人B也一直在对自己进行改变。他也是,另外增加1个。 B应该做什么“更新到HEAD”,以便他也可以进行修改。什么人B已经尝试过...

  1. 承诺自己的变化到他自己的分支。
  2. 开关掌握
  3. 的git拉出身主
  4. 的git合并大师伊恩。

在第四行,他总是得到一个冲突的投诉。为什么?!

任何帮助将不胜感激。

回答

1

如果git在抱怨冲突,这意味着人A和人B(他的名字可能是Ian?)已经修改了相同的文件和更改,好吧,冲突。无论是该文件是一个二进制文件,为此git永远不能解析两个不同的修改,或者它是一个文本文件,并且这两个修改触及相同的一组行。

您将不得不解决冲突。您可以使用git mergetool来解决这个问题。

(冲突是不是唯一的饭桶。他们可以使用Subversion发生,也为同一类的原因。)

+0

感谢您的帮助肯Thomases。我想,当Ian和我测试它时,我会有一个会说“测试文件”的文件。对于我来说,我会添加一条说“Alex's Addition”的附加行。 Ian会在他的电脑上同时添加一行说:“伊恩的补充。”我希望git也可以合并,但是我猜想因为它们在同一行,所以它不起作用。但是,如果Ian可能会在文件的后面放置更多行(例如,按Enter键一次),它会不会与我的行冲突? git能够合并两者吗? – user941401 2012-04-07 08:49:47

+0

不可以。例如,怎么可能知道你的线路是在原始线路之后还是在Ian的添加之后马上去? – 2012-04-07 09:23:05