Gerrit會自動在提交消息中爲每個新提交添加一條Change-Id: I....
行。當一個提交被挑選到多個分支時,這一行被保存在它的消息中。Git:如何使用給定的Change-Id查找提交?
有沒有什麼辦法:
- 找到所有提交給定更改-ID
- 找到一個特定的分支提交給定更改-ID
- 指定給定更改-ID提交(在特定的分支)的修正參數(如
git cherry-pick {[dev-branch::]Change-Id: Ixxxx}..master
)
Gerrit會自動在提交消息中爲每個新提交添加一條Change-Id: I....
行。當一個提交被挑選到多個分支時,這一行被保存在它的消息中。Git:如何使用給定的Change-Id查找提交?
有沒有什麼辦法:
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
。
'git - 否 - pager log --format = format:%H -1 --grep「Change-Id:$ 1」'可能會更好? – lz96
是的,那更好! –
'git log --grep ='應該處理2.如果你在3中有相同的更改ID有多個提交,你會怎麼做? – HuStmpHrrr
即使您更新了3,它也會使問題變得複雜,需要更復雜的決策程序。我不認爲你可以做到這一點,沒有包裝在腳本內。 – HuStmpHrrr
'ssh -p @ gerrit查詢更改:'。該端口默認爲29418。您可以添加其他':',例如'branch:master'。 –
ElpieKay