如何將多個 Git 提交合併為一個
如果您是 Git 開發者,您可能遇到過混亂的提交歷史。將多個 Git 提交合併為一個(稱為壓縮的過程)可以幫助組織您的提交歷史。在本教程中,我將向您展示如何將 Git 提交合併為單個、簡潔、乾淨的提交。
為什麼要合併 Git 提交?
合併或壓縮多個 Git 提交具有多個優點- 更清晰的歷史記錄:它有助於保持專案歷史記錄的整潔,將小的增量更改合併到單個提交中。
- 更輕鬆的協作:透過將所有相關的更改放在同一個提交下,簡化了程式碼審查。
- 更好的可讀性:它使跟蹤功能或錯誤修復更改更容易。
合併 Git 提交的方法
在 Git 中壓縮提交主要有兩種方法- 互動式變基(合併多個最近的提交的好方法)
- 軟重置和重新提交(將所有提交合併為一個的理想方法)
讓我們更詳細地瞭解每種方法。
方法 1:使用 Git 互動式變基
Git 變基是一個強大的 Git 功能,允許您重新排序和壓縮提交以及其他一些操作。在本教程中,我將向您展示如何使用互動式變基來合併您最近的提交。
互動式變基 - 分步指南
1. 確定要壓縮的提交範圍:找出要合併多少個提交。假設您進行了三個提交,並且想要將它們壓縮為一個。如果您需要將最新的提交之前的三個提交進行變基,那麼您將這樣做。2. 開始互動式變基:只需使用N(N 為要合併的提交數)執行您的命令。
git rebase -i HEAD~N
例如,如果您想壓縮最後三個提交,請鍵入:
git rebase -i HEAD~3
3. 編輯變基檔案:然後,您執行rebase命令,並開啟一個編輯器,其中列出了您的最近提交。每個提交前面都帶有單詞 pick。
4. 選擇要壓縮的提交:在所有要與最頂部提交合並的提交上,將單詞pick更改為squash(或s)。首先,在第一個提交行上保留 pick,並將其餘的更改為 squash。例如,
pickInitial commit message
squashSecond commit message
squashThird commit message
5. 儲存並關閉編輯器:編輯後,儲存並關閉編輯器。您的提交現在將在 Git 中合併。
6. 編輯合併的提交訊息:合併的提交訊息將在您的編輯器中開啟,Git 將要求您進行編輯。如果需要,您可以保留各個提交訊息,也可以編寫新的訊息。完成後,儲存並關閉編輯器。
7. 完成變基:Git 現在將選定的提交壓縮為一個。要驗證,請使用以下命令:
git log
您應該看到單個提交代替以前的提交。
方法 2:使用 Git 軟重置和重新提交。
如果您希望將所有更改壓縮到一個提交中,此方法更快。軟重置 - 分步指南
1. 確定要包含的第一個提交:在所有提交中,確定要作為起始點的提交。假設您希望壓縮第一個提交之後的所有內容。2. 將軟重置到目標提交:使用--soft和所需提交的雜湊值作為基準的git reset命令。
git reset --soft <commit_hash>
3. 建立新的提交:一次性暫存所有更改並提交它們。
git commit -m "Your combined commit message"
4. 驗證提交:要確保您的更改僅屬於一個提交,請執行git log。
關於壓縮提交的重要說明
- 本地分支與遠端分支:本地分支可以安全地進行壓縮。為此,您可能被迫強制推送 (git push -f),這可能會破壞協作者的工作。如果您正在處理共享分支,請務必與您的團隊協調。
- 撤消壓縮:使用git reflog,如果意外壓縮提交,您可以將分支重置到較早的狀態。
合併拉取請求之前的壓縮提交
大多數團隊喜歡在合併拉取請求之前壓縮提交,以獲得更清晰的專案歷史記錄。在 GitHub 或其他程式碼託管站點上,您可以選擇“壓縮併合並”;它將您的拉取請求提交壓縮為一個並將其合併到主分支。結論
將一堆提交合併為一個是非常實用的操作,可以建立乾淨易讀的提交歷史記錄。掌握git rebase和git reset允許您壓縮提交,使您的貢獻更易於跟蹤和協作。
廣告