[英]Git: How to find commits with given Change-Id?
Gerrit会为每个新的提交自动在提交消息中添加一个Change-Id: I....
行。 当一个提交被挑选到多个分支时,该行将保留在其消息中。
有什么办法可以:
git cherry-pick {[dev-branch::]Change-Id: Ixxxx}..master
) 编辑:我发布此答案后,@ lz96建议:
git --no-pager log --format=format:%H -1 --grep "Change-Id: $1"
绝对是最干净的方法!
这是我的原始答案:
我想不出一个一步就可以做到的干净方法,因此有两个:
git log --grep "Change-Id: <id>"
这将显示具有此Change-Id
参数的所有提交。 步骤1b:祈祷只有一个。
步骤2: git cherry-pick <sha>
。
这是我丑陋的单步执行器:
git cherry-pick $(git log --grep "Change-Id: <id>" | head -n 1 | cut -d ' ' -f 2)
您可能将其变成一个函数,以隐藏所有复杂性:
function changepick() {
git cherry-pick $(git log --grep "Change-Id: $1" | head -n 1 | cut -d ' ' -f 2)
}
这也给您带来了不必在一行的中间插入Change-Id
的好处。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.