git - Bitbucket:远程 repo 中的冲突,无法弄清楚如何解决

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

我希望我能正确表达这一点...我在 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(主仓库)

如果您使用 gitkgit 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/

相关文章:

git - 使用用户名和密码执行 git pull

git - 了解 Git 图

git - "Move"文件到 Git 中自己的分支

git - 我可以在不 fork 的情况下将 pull 请求从一个存储库发送到另一个存储库吗?

python - 使用 Python 的 HTTPBasicAuthHandler 进行 Bitbucket API 身份验证

git - VimDiff E93 : More than one match for RE

git - 被遗忘的 rebase interactive - git

git - 将 TFS 构建服务连接到 Github 存储库

linux - 在 bash 脚本中使用修改后的变量,尝试以编程方式更改 git 分支

linux - SSH 公钥/私钥身份验证失败