[英]Can GitHub rebase instead of merge, like Gerrit?
我做了一些Gerrit代碼審查,發現一旦我們在 Gerrit 頁面上單擊“提交”,它就不會進行合並,而是進行“rebase”(更准確地說,一些櫻桃挑選),這樣歷史是線性的,我所有的小提交歷史都會 go 進入該線性歷史,並且沒有“合並”提交。
然后我在 GitHub 上嘗試了類似的操作:只需 fork 一個倉庫,然后在 web 上編輯並創建一個拉取請求,並讓原始倉庫通過合並來接受該拉取請求。
然后我在 SourceTree 中看到它是“合並”,而不是“變基”,所以歷史不是線性的......但是如果我執行git log
,我仍然會看到所有提交歷史,可能只是按時間順序排序。
但問題是,GitHub 可以像 Gerrit 一樣做 rebase 嗎? 這應該不難做到:當用戶可以單擊 GitHub 上的“合並”時,只需檢查變基是否一切正常,只需將“合並”按鈕更改為“通過變基合並”或“接受更改” (作為變基)”,它就像 Gerrit 一樣工作,變基是許多回購所有者喜歡的方式。 那么 GitHub 可以像 Gerrit 一樣做 rebase 嗎?
GitHub 提供一個綠色“合並”按鈕,一側有一個下拉箭頭。 單擊下拉箭頭可以更改操作:
git merge
git rebase --force
一樣,然后快進生成的復制提交git merge --squash
,或多或少這三個選項中的中間一個類似於 Gerrit 會做的事情,但我不清楚 Gerrit 是否具有(錯誤?)有效地執行git rebase --force
first 的功能。
強制變基意味着您(單擊合並按鈕的人)成為新提交的提交者,並且所有提交都有新的、不同的 hash ID,即使原件可以按原樣使用,即使您是原始提交的提交者。 (如果您不是最初的提交者,那將是像這樣強制 rebase 的一個很好的借口。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.