git - merge pull 请求后,如何防止来自功能分支的提交显示在开发分支中?

标签 git github

我做了什么

在本地仓库中:

  1. git checkout -b feature/db/projectImport dev
  2. 做出改变
  3. git add .git commit
  4. git push origin feature/db/projectImport(留在那个分支)

现在在 GitHub 中:
5. 点击Compare & pull request按钮,最后用默认 merge 按钮 merge ,默认 merge 按钮声称使用--no-ff



pull 请求图片 pull request


我想要实现的目标

  • 我不希望来自功能分支的提交消息出现在开发分支的提交消息中。
  • 当我将 feature 分支 merge 到 dev 时,feature 分支将保留其所有提交,但 dev 分支将只有 merge 犯罪。 这可能吗???

repo 中的相关图片

功能分支提交: feature branch commits

开发分支提交: dev branch commits

注意:

  • 我是 git 的新手。所以,我的想法可能是错误的。如果是这样,请指出我的错误并告诉我正确的地方。
  • 非常感谢收到任何建议。提前致谢。

最佳答案

正如其他人在评论中指出的那样,您正在寻找的是 merge PR 时的压缩选项。

当你压缩 merge 时,这会改变目标分支上的内容,但不会改变源分支上的内容。所以在 dev 上,你会看到一个提交。但是在特性分支上,只要你不删除它,你就会继续看到你所有的原始特性提交。并且 PR 将继续持有指向该分支的指针。

现在,这对我来说是一个有点有趣的工作流程:当我 merge 一个 PR 时,我系统地删除了功能分支。但是您的工作流程也应该工作正常。

怎么做

在 GitHub 上

准备好 merge PR 后,确保使用 GitHub 的“压缩和 merge ”方法 merge 它:

squash and merge a PR

在 Git CLI 上

如果您在自己的计算机上进行 merge ,则可以像这样完成相同的操作:

git checkout dev
git merge --squash feature/feature-name
git push origin dev

结果

无论使用哪种方法,您都可以为压缩的提交编写一条新消息,该消息将添加到 dev

完成 merge 后,dev 将有一个新的提交,分支 feature/feature-name 将保持不变。

关于git - merge pull 请求后,如何防止来自功能分支的提交显示在开发分支中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70894488/

相关文章:

git - 我应该将已删除的文件添加到舞台区域吗?

git - 为什么 git revert 提示缺少 -m 选项?

git - 混合存储库的正确版本控制工作流程

git - 我如何使 git log --graph 成为默认值

git - 自动 rebase gerrit 更改

bash - git 的最终别名失败(__git_aliases 命令似乎已被弃用)

Github)删除旧的提交

git - 如何为具有同一主机的多个 gitlab 帐户使用多个 ssh key

Git 相当于 `hg cp`

swift - Swift 中的 Github GraphQL 查询 "Not Found"