如何在git中合并两个不同存储库的长历史记录

时间:2011-07-16 10:58:04

标签: git github

我在github上有一个存储库,我和朋友同时工作。我们在github上分发了我们的本地主副本,并为我们各个分支添加了许多功能。但我们只承诺我们的本地副本(而不是github上的副本)。如何管理历史记录和提交,以便我们的提交都反映在github存储库中(没有一连串的合并冲突)?感谢。

另外,我如何处理冲突和补丁?有人可以提供问题的直观表示以及如何解决问题(以便我能更好地理解它)。

3 个答案:

答案 0 :(得分:1)

你们都必须

  • 合并与远程(Github)
  • 推送到远程(Github)

合并可能会导致冲突。 没有办法解决它,这就是Git的工作原理。 所以我的建议;对于未来的项目,经常合并和推动以避免冲突,特别是如果你可能都在同一件事上工作。

答案 1 :(得分:1)

不是将你的整个提交早期合并到远程分支中,而是让你解决许多冲突,你也可以将你的提交部分合并。

`git merge <commit point a>`

首先解决一些冲突

`git merge <commit point b>`

首先解决一些冲突

`git merge <commit point c>`

解决冲突的最后部分

其中a,b,c是sha-1中的提交点​​,并且&lt; b&lt; c

我认为这会减轻你的痛苦。

答案 2 :(得分:0)

假设两个都在master分支上工作,所有更改都将转到Github上的master分支。不要使用pull,而是使用fetchrebase(在git ready描述)

  1. 你们两个(比方说,1)首先应该push到Github(最好是变化较少的那个)
  2. 来自Github的其他(比如2)fetch es(请勿拉):git fetch github/master
  3. 然后,2执行git rebase github/master
  4. 2解决了一些冲突
  5. 2执行git push到Github
  6. 1来自Github的git pull,肯定会有没有冲突