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

Sir*_*ris 7 git bitbucket git-merge merge-conflict-resolution

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

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

Chr*_*ris 10

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

添加一个新的远程upstream代表"Master"存储库:

git remote add upstream git@bitbucket.org:user/master-repo.git
git fetch upstream
Run Code Online (Sandbox Code Playgroud)

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

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

如果您想象这些分支,gitk或者git 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
Run Code Online (Sandbox Code Playgroud)

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

git push origin master
Run Code Online (Sandbox Code Playgroud)