我希望我能正确表达这一点...我在 Bitbucket 中进行了以下设置(使用 Git 协议(protocol))。我有一个包含我的应用程序的主存储库。然后我为每个客户 fork 主仓库,以便在不影响主仓库的情况下灵活地进行客户特定的更改。当需要进行通用更改时,我会推送到 master,然后与分支同步,然后 pull 入生产环境。
我遇到的问题是,在 Bitbucket 中,它说我有 merge 冲突,但我不知道如何解决它们。在本地,我没有冲突。当我进入 Bitbucket 时,它告诉我我在主存储库后面有 2 个提交,所以我单击同步。它说存在 merge 冲突,我需要解决它们。然后我看不到解决这些冲突的办法。如果我 pull 生产服务器,它会说存在冲突,我需要解决它们,所以我这样做了。我使用 nano(因为我讨厌 VIM)并清除我需要的东西,然后继续我的工作。但是 fork 的 repo 似乎仍然存在冲突。我不知道我需要做什么才能解决这种情况。无论如何,这让我停滞不前,因为在冲突得到解决之前,我不能再对 fork 进行任何更改。
最佳答案
使用 fork 时,将上游存储库(您的主存储库)配置为远程以及 fork (您的客户端 A 存储库)通常很有帮助。例如,您可能已经有一个代表 fork 的 origin
。
添加一个新的远程 upstream
来表示“主”存储库:
git remote add upstream git@bitbucket.org:user/master-repo.git
git fetch upstream
现在您应该能够看到所有相关的分支。例如,如果您尝试 merge master
分支,这些将是相关的:
master
(本地)origin/master
(客户端 A)upstream/master
(主仓库)
如果您使用 gitk
或 git log --all --graph --decorate
可视化这些分支,您可能能够看到冲突的来源。您很可能希望将来自两个远程的更改 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
完成此操作后,您应该能够干净利落地推送
到origin
:
git push origin master
关于git - Bitbucket:远程 repo 中的冲突,无法弄清楚如何解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21003971/