我希望我能正确表达这一点......我在Bitbucket中使用以下设置(使用Git协议)。我有一个包含我的应用程序的主仓库。然后,我为每个客户端分配主仓库,以便灵活地进行客户端特定的更改,而不会影响主服务器。当需要进行通用更改时,我会推送到master,然后与fork同步,然后进行生产。
我遇到的问题是,在Bitbucket中,它说我有合并冲突,但我不知道如何解决它们。在当地,我没有冲突。当我进入Bitbucket时,它告诉我我在主仓库后面有2个提交,所以我点击同步。它说合并冲突,我需要解决它们。然后,我认为无法解决这些冲突。如果我对生产服务器进行了拉动,它会说存在冲突,我需要解决它们,所以我这样做了。我接受nano(因为我讨厌VIM)并清理我需要的东西,然后继续我的事业。但分叉的回购似乎仍然存在冲突。我不知道为解决这种情况需要做些什么。无论如何,它让我处于停滞状态,因为在冲突得到解决之前,我无法再对fork进行更改。
答案 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
(主回购)如果您使用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
完成此操作后,您应该能够push
干净地origin
:
git push origin master