我做了什么
在本地仓库中:
git checkout -b feature/db/projectImport dev
- 做出改变
git add .
和git commit
git push origin feature/db/projectImport
(留在那个分支)
现在在 GitHub 中:
5. 点击Compare & pull request按钮,最后用默认 merge 按钮 merge ,默认 merge 按钮声称使用--no-ff
我想要实现的目标
- 我不希望来自功能分支的提交消息出现在开发分支的提交消息中。
- 当我将
feature
分支 merge 到dev
时,feature 分支将保留其所有提交,但dev
分支将只有 merge 犯罪。 这可能吗???
repo 中的相关图片
注意:
- 我是
git
的新手。所以,我的想法可能是错误的。如果是这样,请指出我的错误并告诉我正确的地方。 - 非常感谢收到任何建议。提前致谢。
最佳答案
正如其他人在评论中指出的那样,您正在寻找的是 merge PR 时的压缩选项。
当你压缩 merge 时,这会改变目标分支上的内容,但不会改变源分支上的内容。所以在 dev 上,你会看到一个提交。但是在特性分支上,只要你不删除它,你就会继续看到你所有的原始特性提交。并且 PR 将继续持有指向该分支的指针。
现在,这对我来说是一个有点有趣的工作流程:当我 merge 一个 PR 时,我系统地删除了功能分支。但是您的工作流程也应该工作正常。
怎么做
在 GitHub 上
准备好 merge PR 后,确保使用 GitHub 的“压缩和 merge ”方法 merge 它:
在 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/