git - 源分支落后于目标分支 n 次提交

标签 git github git-merge

在我的项目中,master 分支包含发布状态,development 分支是完成开发的地方。

项目最初从SVN导入到master分支,然后创建开发分支。该项目是使用开发分支进行的。

过了一段时间,我想将开发与master merge ,但遇到了冲突。 (我想我可能无意中向 master 分支添加了一个 CHANGELOG 文件)Github 显示了一条类似 源分支在目标分支后面有 1 次提交 的消息。不管怎样,我决定将 master merge 回开发分支,似乎可以解决问题。我能够将开发分支与主分支 merge 。

不久之后,我想第二次 merge 开发以掌握并收到类似的消息源分支比目标分支落后 2 次提交。这似乎表明我之前的操作并没有解决问题。

为什么我的开发分支位于主分支后面?我必须做什么 让它们恢复同步?

图表如下所示 enter image description here

我显然在这里做错了什么,但我不明白它可能是什么。

最佳答案

不建议将master分支 merge 到开发分支。

如果您想让开发分支与主分支保持更新,您应该使用git rebase

      A---B---C development
     /
D---E---F---G master

运行以下任一命令后:

git rebase master
git rebase master development

您的提交历史记录将是:

              A'--B'--C' development
             /
D---E---F---G master

关于git - 源分支落后于目标分支 n 次提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57889549/

相关文章:

git - 如何共享没有历史记录的 GIT 分支? (使用 GitLab)

git - 还原 git mergetool 所做的更改需要哪些命令?

ruby-on-rails - 无法将 IP 地址 'xxx' 的 RSA 主机 key 添加到已知主机列表 (/home/webapp/.ssh/known_hosts)

github - 有没有办法记录来自 Github Actions 的错误响应?

javascript - 尝试从git存储库中提取json格式的数据

git - 如何自动检测 Git 提交或 rebase 是否包含类似 "<<<<< HEAD"的内容?

c++ - 用于单用户开发的 Git merge/ rebase 策略

git - git merge-base 是可交换的吗?

git - Jenkins 有时无法获取 repo

gitlab letencrypt http_authorization 错误