首页 > 解决方案 > Git 的提交历史中没有合并提交

问题描述

我将开发分支合并到暂存分支,但在暂存分支上看不到合并提交。我究竟做错了什么?我的工作流程如下。

  1. 结帐开发分支并进行一些更改
  2. 拉取开发分支
  3. 将开发分支提交到本地仓库
  4. git checkout -q staging
  5. git merge development
  6. git push origin staging:staging
  7. git checkout -q development
  8. git push origin development:development

我将 VS Code GUI 用于 git 任务。我有另一个开发人员在同一个项目中工作。由于某些原因,在两个分支中,提交历史看起来完全一样。早些时候,它曾经显示没有任何问题的合并提交,但现在不再出现了。我们俩都无法弄清楚哪里出了问题。

标签: gitmergebranchcommitaws-codecommit

解决方案


当您使用 Git 在两个分支之间执行合并并且您要合并的分支是您要合并到的分支的严格超集时,Git 执行所谓的快进合并,这基本上意味着您要合并到的分支只是直接更新为与其他分支完全相同。换句话说,不会创建合并提交。

但是,有时这是不可取的,无论如何您都希望创建合并提交。您可以使用git merge --no-ff. 因此,在您的示例中,在第 5 步,您将运行git merge --no-ff development.

这可能会令人困惑,因为大多数托管平台(如 GitHub)在合并时总是执行合并提交,即使 Git 没有。


推荐阅读