git - 如何列出包含提交更改的所有标签?
问题描述
假设我有 2 个标签X
,Y
这样
tag X log history: C1 C2 ... Cn
tag Y log history: Z1 Z2 ... Zm
如果hash(Ci) = hash(Zj)
(对于给定的i
and j
)并且我想知道所有具有提交的标签,Ci
我可以这样做,如“https://stackoverflow.com/questions/7923091/how-to-list-all-tags-that-contain -a-commit",
git tag --contains Ci
那会给我X
和Y
。
是否可以获得相同的响应,hash(Ci) != hash(Zj)
但它们都应用了相同的更改(例如,它们都在同一个文件中添加了相同的行但它们在提交消息中不同)?
编辑
通过说标签“包含给定提交的更改”,我的意思是在标签的日志历史记录中,有一个提交C
应用了与给定提交相同的修改。
解决方案
不,这不能通过标准git
功能完全自动且可靠地完成。即使您不编辑提交消息,SHA-1 也会在挑选时发生变化。不能有 2 个具有相同 SHA-1 的提交。
对跟踪的一些支持由
git cherry-pick -x
会将原始 SHA-1 插入到新提交的提交消息中。但是如果你忘记使用-x
“链接”就会丢失。git log "-S${string}" --all
如果您知道一个对您的更改具有特征(足够)的字符串,则在所有分支中搜索更改。- 使用 Git,我如何在所有分支中搜索字符串?
问题想使用标签。但是标签也没有添加这样的神奇功能。
您将需要一个流程来在提交消息中进行必要的交叉引用。CI 可以强制执行此类流程
推荐阅读
- javascript - 如何从数组中获取不匹配的元素?
- amazon-web-services - AWS API Gateway 访问私有子网
- java - EMR 上的 Flink Job 使用类型安全配置作为依赖项给出 NoSuchMethodError: Config.getEnum
- soap - 如何在 ASMX Web 服务响应中添加自定义肥皂头
- go - 设置拨号器的拨号功能
- php - 从 Cakephp 中的非关联控制器访问变量
- html - 如何使用 CSS flexbox 创建此布局?
- javascript - 开玩笑:尝试导入本机模块时出错;无法用 Mock 预防
- sas - SAS:如何重复计算和更改值?
- javascript - 在函数内部使用“this”从视图模型列表中获取视图模型属性