我們(git/gerrit newbs)試圖使用具有特徵分支的gerrit。我們試圖實施的工作流程如下:Gerrit跟蹤功能分支?
- 用戶創建一個功能分支,用
git push -u origin users-branch
直接將其推送到遠程回購(無評論)。 - 由於變更堆積在主分支中,用戶確實需要
git pull --rebase origin master
(需要--rebase
,否則git創建合併提交,並且合併提交不能通過gerrit推送)。 - 用戶繼續將其更改推送到遠程回購
git push --force origin users-branch
(--force
需要,因爲在上一階段--rebase
;我正在尋找更好的方法來執行此操作)。 - 其他用戶可以通過推送自己的更改來爲功能分支做出貢獻。
- 當功能準備就緒後,用戶將其推入
git push origin HEAD:refs/for/master
進行查看。
最後一步不起作用,因爲在任何階段推送給gerrit的提交都無法再次推送。
gerrit手冊建議修改您想要再次提交的提交。這看起來很複雜且容易出錯。
如果用戶從不將他的更改推送到遠程回購,這一切都可以正常工作,因爲gerrit在被推送審查之前不會看到更改。但這正是我們不喜歡的。
對功能分支使用不同的回購似乎是可能的,例如gerrit從不會看到重複的變更ID,但這又似乎是不必要的複雜化。
有沒有辦法做到我們想要的安全和優雅?
*合併提交不能通過gerrit推送*您可以重新配置這個。但是,也許你不想要那個,我會理解的 –
如果你不想(大多數)承諾被審查,那麼使用gerrit有什麼意義?我認爲這是它最大的優勢之一,不允許任何人推動任何東西,除非它已被審查 –
@TimCastelijns我希望所有提交到主和發佈分支進行審查,但不是功能分支。 –