将GIT中的2个分支合并在一起

问题描述:

我刚刚开始使用GIT并认为它很棒,但我对merge命令的功能有点困惑。将GIT中的2个分支合并在一起

让我们假设我们在分支“A”中有一个工作项目。

我回家并对该分支进行更改并将其保存为“B”。 另一位程序员对“A”进行更改并将其另存为“C”。

有没有办法将两个分支“B”和“C”合并在一起,然后提交更改作为一个新的分支,说“D”?

或者我错过了“合并”的观点?

+0

无需在另一分支中“保存更改”。工作一个A然后合并那些不同的A在一起 – knittl 2010-08-04 10:03:07

+0

我不关注。 A将在我的本地计算机上,dev1将在他的计算机上拥有A副本,并且dev2在他的计算机上拥有A副本。这两个开发人员都进行了更改,我如何将这些更改合并在一起? – dotty 2010-08-04 10:21:12

+0

参见。开发人员可能需要首先推送/上传他们的存储库 – knittl 2010-08-04 10:50:08

merge用于将两个(或多个)分支结合在一起。

一点例如:

# on branch A: 
# create new branch B 
$ git checkout -b B 
# hack hack 
$ git commit -am "commit on branch B" 

# create new branch C from A 
$ git checkout -b C A 
# hack hack 
$ git commit -am "commit on branch C" 

# go back to branch A 
$ git checkout A 
# hack hack 
$ git commit -am "commit on branch A" 

所以现在有三个独立的分支(即AB和C)不同的头

获得从B和C的变化回到A,结账A(在这个例子中已经完成),然后使用该合并命令:

# create an octopus merge 
$ git merge B C 

你的历史会再看看这样的事情:

…-o-o-x-------A 
     |\  /| 
     | B---/ | 
     \ /
     C---/ 
如果你想跨库/计算机边界合并

,看看git pull命令,例如从具有分支A的PC(此示例将创建两个新提交):

# pull branch B 
$ git pull ssh://host/… B 
# pull branch C 
$ git pull ssh://host/… C 
+0

合并分支时出现“内容冲突”错误。 – dotty 2010-08-04 10:16:00

+0

这意味着两个分支都改变了同一段代码。修正conflitcs,'git add conflicting_files'然后'git commit' – knittl 2010-08-04 10:20:37

+0

说A中的文件包含单词“hello”,A将它修改为“HELLO”,B将它修改为“Hello world”。合并这些文件的结果是什么? – dotty 2010-08-04 10:23:34