簡體   English   中英

GitHub 可以像 Gerrit 一樣變基而不是合並嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM