我希望我能正确表达这一点...我在Bitbucket中具有以下设置(使用Git协议(protocol))。我有一个包含我的应用程序的主仓库。然后,我 fork 每个客户端的主存储库,以便灵活地进行特定于客户端的更改而不会影响主存储库。当需要进行一般性更改时,我先 push 母带,然后与前叉同步,然后投入生产。

我遇到的问题是在Bitbucket中,这是说我有 merge 冲突,但是我不知道如何解决它们。在本地,我没有冲突。当我进入Bitbucket时,它告诉我我在主存储库后面有2次提交,因此我单击了同步。它说存在 merge 冲突,我需要解决它们。然后,我看不到解决这些冲突的方法。如果我在生产服务器上进行 pull ,则表明存在冲突,我需要解决它们,所以我这样做。我加入了nano(就像我讨厌VIM),清理了我需要的东西,然后开始了我的生意。但是, fork 的 repo 似乎仍然存在冲突。我不知道要解决这种情况我需要做什么。无论如何,这使我处于停滞状态,因为在解决冲突之前,我无法再对 fork 进行任何更改。

最佳答案

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

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

git remote add upstream [email protected]:user/master-repo.git
git fetch upstream

现在,您应该能够看到所有相关分支。例如,如果您尝试 merge master分支,则这些将是相关的:
  • master(本地)
  • origin/master(客户端A)
  • upstream/master(主存储库)

  • 如果使用gitkgit log --all --graph --decorate可视化这些分支,则您可能能够看到冲突的来源。您很可能希望将两个 Remote 上的更改 merge 到本地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
    

    关于git - Bitbucket:远程仓库中的冲突,无法解决,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21003971/

    10-14 03:55