Gerrit会在每次新提交的提交消息中自动添加Change-Id: I....
行。当提交被挑选到多个分支中时,该行将保留在其消息中。
有没有办法:
git cherry-pick {[dev-branch::]Change-Id: Ixxxx}..master
)答案 0 :(得分:2)
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
。