git - 如何挑选然后将分支标记为合并而无需添加到提交历史记录?
问题描述
我们以前使用svn。我们从“发布”分支构建和发布,然后有选择地合并回主干(在 TortoiseSVN 中,通过在合并期间检查或取消检查提交)。现在,在转换为 git 后,我们做同样的事情,但合并如下:
- 从发布分支中挑选提交到 master
- merge -s ours release-branch --log --no-edit -m"将分支标记为合并"
哪个做我们想要的,至少在功能上。然而,由于“我们的”合并中的提交实际上是“合并”的(没有改变任何东西),它们最终会出现在 master 的提交历史中——这使得提交历史非常混乱。
有没有办法抑制或自定义将“合并”提交写入目标分支(在这种情况下是主分支)?抑制会很好,但是在提交消息之前加上“忽略,合并为'我们的':”或类似的东西至少会有所帮助。
编辑:从@phd 的回答来看,很明显我没有正确读取生成的提交日志,但是会将日志--first-parent master
过滤到我想要的内容。
解决方案
最终出现在 master 的提交历史中
这取决于您查看所述提交历史的方式。命令
git log --first-parent master
显示仅属于 master 的提交。
这使得提交历史非常混乱。
我建议您适应合并的分支,之后它们就不会被混淆了。合并在 git 中是一个相当标准的操作,所以让自己适应合并的分支是你能做的最好的事情。
有没有办法抑制或自定义将“合并”提交写入目标分支
没有。顺便说一句git
,不会将合并分支中的提交写入 master ——它创建一个简单地指向两个分支的合并提交,这就是 git 历史查看器(包括git log
)从合并分支中发现提交的方式。
推荐阅读
- amazon-web-services - S3 和 .net Amazon SDK - 无法下载文件
- sqlite - 不包括 sqlite 在哪个系统上
- python - 在 PySpark 中提取特定行
- python - 这个字符串在 seaborn 散点图的调色板参数中是什么意思?
- c - 有没有一种简单的方法可以在 FPGA 上运行的 C 程序中与网页进行交互?
- php - WebSocket 连接失败:连接建立错误:net::ERR_CONNECTION_TIMED_OUT
- tfs - 无法在 TFS 中查看集合或项目
- c++ - 建议重构以下形式的 if 语句?
- kubernetes - 在 Kubernetes 中指定每个资源类型请求?
- reactjs - 使用酶更新表单中的输入