合併多個 Commit , 編輯
我們深入探討每位開發人員都應該掌握的基本 Git 技巧。包括:合併多個提交、編輯提交和 Interactive rebase 等。逐步了解如何優化您的 Git 工作流程,有效地結合多個提交、精煉提交消息以及利用 Interactive rebase 的強大功能。
Last updated
我們深入探討每位開發人員都應該掌握的基本 Git 技巧。包括:合併多個提交、編輯提交和 Interactive rebase 等。逐步了解如何優化您的 Git 工作流程,有效地結合多個提交、精煉提交消息以及利用 Interactive rebase 的強大功能。
Last updated
Merge commit: 保留 Branch commit 歷程,又稱為 no fast-forward merge。(預設的 Merge 模式)
Squash merge: 忽略並壓縮 Branch commit 歷程。
Rebase merge (基底合併): 將 Branch commit 歷程加入到 Main branch commit,又稱為 fast-forward merge 。(從 Branch 取得最新內容,並重新定位 Commit 基準)
Cherry-Pick (揀選): 從一個 Branch 中獲取單個 Commit 並將其 Merge 於另一個 Branch。
將 Merge commit (Branch merge) 到當前 Branch。
執行 Rebase merge 到當前 Branch。。
當有多位開發者時,經常將 Remote main branch 合併到本地功能性 Branch,能盡早發現衝突。
執行 Cherry-pick 到當前 Branch。。
同一 Repository 的 Git SHA-1 ID 不會重複。
Interactive rebase 允許以互動的方式(interactive)修改、刪除、合併和拆分同一 Branch 的 Commit。
Interactive rebase 是一個強大的工具,但應該小心使用它,因為它可以改變 Branch 的歷史,這可能會給在同一 Branch 上工作的其他開發人員帶來問題。通常建議只在本地 Branch 或尚未 Push branch 上使用 Interactive rebase。
執行 Interactive rebase ,顯示編輯介面。 (使用預設編輯器開啟)
git log
由新到舊(上到下)顯示;git rebase -i
由舊到新(上到下)顯示,並且不會顯示 Commit 日期。
跳過 Conflict commit。
繼續因Conflict 而暫停的 Interactive rebase。
建立空白的 Remote repository 副本。
可以 clone URL 或 建立空白副本。
Push 所有 Tags、本地 Branchs。
此命令會對 Remote repository 產生重大影響,因為它會更新或創建 Branchs 和 tags。因此,應謹慎使用並且擁有的必要權限。
Windows 上的 Git:如何設置合併工具? - 堆棧溢出
git - merge --squash 和 rebase 有什麼區別? - 堆棧溢出
Git Rebase VS Merge VS Squash:如何選擇合適的? - 開發社區
合併策略和壓縮合併 - Azure Repos | Microsoft Learn