Bitbucket:远程回购中的冲突,无法弄清楚如何解决

时间:2014-01-08 18:43:38

标签: git bitbucket git-merge merge-conflict-resolution

我希望我能正确表达这一点......我在Bitbucket中使用以下设置(使用Git协议)。我有一个包含我的应用程序的主仓库。然后,我为每个客户端分配主仓库,以便灵活地进行客户端特定的更改,而不会影响主服务器。当需要进行通用更改时,我会推送到master,然后与fork同步,然后进行生产。

我遇到的问题是,在Bitbucket中,它说我有合并冲突,但我不知道如何解决它们。在当地,我没有冲突。当我进入Bitbucket时,它告诉我我在主仓库后面有2个提交,所以我点击同步。它说合并冲突,我需要解决它们。然后,我认为无法解决这些冲突。如果我对生产服务器进行了拉动,它会说存在冲突,我需要解决它们,所以我这样做了。我接受nano(因为我讨厌VIM)并清理我需要的东西,然后继续我的事业。但分叉的回购似乎仍然存在冲突。我不知道为解决这种情况需要做些什么。无论如何,它让我处于停滞状态,因为在冲突得到解决之前,我无法再对fork进行更改。

1 个答案:

答案 0 :(得分:10)

使用fork时,将上游存储库(主存储库)配置为远程存储库以及fork(客户端A存储库)通常很有帮助。例如,您可能已经有一个代表fork的origin

添加新的远程upstream以表示“主”存储库:

git remote add upstream git@bitbucket.org:user/master-repo.git
git fetch upstream

现在您应该能够看到所有相关分支。例如,如果您尝试合并master分支,则这些将是相关的:

  • master(本地)
  • origin/master(客户A)
  • upstream/master(主回购)

如果您使用gitkgit log --all --graph --decorate可视化这些分支,您可能会看到冲突的来源。您很可能希望将两个遥控器的更改合并到您的本地master分支:

git checkout master
git merge upstream/master  # (Merge changes from the "Master" repo)
# Fix any merge conflicts that may arise
git merge origin/master    # (Merge changes from the Client A repo)
# Fix any merge conflicts that may arise

完成此操作后,您应该能够push干净地origin

git push origin master