[Git教學] 分支合併: merge 與rebase 差異 - MAX行銷誌

文章推薦指數: 80 %
投票人數:10人

在使用merge 合併分支的時候,git 預設會以fast-forward 的模式進行,那 ... 主分支$ git checkout master # 使用fast-forward $ git merge . 跳至主要內容 文章目錄 ㄧ.什麼是分支branch二.分支branch基礎操作三.分支branch合併操作1.merge篇2.rebase篇四.使用merge與rebase時機Git相關延伸閱讀:其他相關延伸閱讀: ㄧ.什麼是分支branch 在開發軟體時,可能同時會有多人在開發同一功能或修復錯誤,也可能會有多個發佈版本的存在,並且需要針對每個版本進行維護。

為了能支援同時進行數個功能的增加或版本控制,Git具備了分支的功能。

二.分支branch基礎操作 1.建立分支 $gitbranch 2.切換指定分支 $gitcheckout $gitcheckout-b#同時建立且切換分支 3.查看目前所有本地分支 $gitbranch#查看本地所有分支 $gitbranch-a#查看所有分支(含遠端分支) 4.刪除指定分支 $gitbranch-d 三.分支branch合併操作 1.merge篇 在使用merge合併分支的時候,git預設會以fast-forward的模式進行,那什麼是fast-forward和no-fast-forward呢?我們來看以下的動圖範例: ▍fast-forward #先切換到主分支 $gitcheckoutmaster #使用fast-forward $gitmerge Gif來源:CSVisualized ▍no-fast-forward #先切換到主分支 $gitcheckoutmaster #使用no-fast-forward $gitmerge--no-ff Gif來源:CSVisualized 可以很清楚的看到同樣都是merge,使用no-fast-forward的模式,會長出小耳朵,可以讓成員在日後很清楚辨識不同的commit歷程所包含的功能有哪些,但是過多的小耳朵反而會造成混亂,所以就會需要fast-forward用來merge些較不重要的commit,像是零碎的bugfix,保持gitcommit的乾淨。

2.rebase篇 ▍功能一:合併版本 Rebase是“Re-”與“Base”的複合字,這裡的“Base”代表「基礎版本」的意思,表示你想要重新修改特定分支的「基礎版本」,把另外一個分支的變更,當成我這個分支的基礎。

#切換至branch1分支: gitcheckoutbranch1 #然後執行Rebase動作,把master當成我們的基礎版本: gitrebasemaster Gif來源:CSVisualized ▍功能二:修改歷史commit紀錄 除上述功能外,rebase還能用來修改特定分支線上任何一個版本的版本資訊 $gitrebase-iHEAD~3 Gif來源:CSVisualized 使用rebase之前,一定要先問問自己「有沒有人也在使用這個分支」,如果有的話,請非常小心使用,因為rebase會改變歷史紀錄。

關於更詳細的rebase-i操作可以參考此篇:修正commit過的版本歷史紀錄Part5 四.使用merge與rebase時機 如果branch是私有分支,rebase可以有效幫你「重整版本」來保持commit紀錄是呈線性整齊,而如果是共有分支則使用mergefast-forward或mergeno–fast-forward,來避免修改到同事的歷史紀錄。

最後~ ▍回顧本篇我們介紹了的內容: 什麼是分支branch分支branch基礎操作分支branch合併操作merge篇rebase篇使用merge與rebase時機 Git相關延伸閱讀: [Git教學]初心者懶人包Git入門[Git教學]寫給Git初學者的入門4步驟[Git教學]分支合併:merge與rebase差異[Git教學]Git時光機回復版本的2種方法reset&checkout[Git教學]如何設定Git快捷鍵指令 其他相關延伸閱讀: VisualStudioCode必備的5個擴充和小常識[Python教學]使用pyenv和virtualenv打造Python環境配置[Python教學]pipinstall指令大全[Python教學]寫給新手的Python入門基礎操作 那[Git教學]分支合併:merge與rebase差異就到這邊,感謝收看,有關Max行銷誌的最新文章,都會發佈在Max的Facebook粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷! 文章導覽 【Flask教學系列】淺談JWT與FlaskJWT實作【Git教學】Git時光機回復版本的2種方法reset&checkout 發佈留言取消回覆發佈留言必須填寫的電子郵件地址不會公開。

必填欄位標示為*留言*顯示名稱* 電子郵件地址* 個人網站網址 在瀏覽器中儲存顯示名稱、電子郵件地址及個人網站網址,以供下次發佈留言時使用。

Δ 搜尋關鍵字: CategoryTags Allposts(138) Crypto(6) DataStudio教學(8) Git教學(8) GoogleTagManager教學(9) PythonDjango教學(3) PythonFlask教學(36) Python基礎教學(23) Python數據分析(20) Python機器學習(3) Python爬蟲教學(15) Python資料庫教學(11) Swift教學(5) LatestPost 【Git教學】超輕鬆gitconfig設定指南 Python環境管理,讓poetry幫你建立虛擬環境 [Python教學]如何切換Python版本,讓Pyenv幫你輕鬆管理版本 Python基礎教學指南 [Python教學]dataclass是什麼?(python3.7+) ListList 選取月份 2022年5月 (4) 2022年4月 (1) 2022年3月 (1) 2022年2月 (1) 2022年1月 (2) 2021年12月 (2) 2021年11月 (1) 2021年10月 (1) 2021年9月 (1) 2021年8月 (1) 2021年7月 (1) 2021年6月 (1) 2021年5月 (1) 2021年4月 (1) 2021年3月 (3) 2021年2月 (1) 2021年1月 (3) 2020年12月 (2) 2020年11月 (2) 2020年10月 (3) 2020年9月 (1) 2020年8月 (5) 2020年7月 (3) 2020年6月 (5) 2020年5月 (11) 2020年4月 (6) 2020年3月 (6) 2020年2月 (1) 2020年1月 (3) 2019年12月 (5) 2019年11月 (5) 2019年10月 (1) 2019年9月 (4) 2019年8月 (2) 2019年7月 (2) 2019年6月 (3) 2019年5月 (1) 2019年4月 (6) 2019年3月 (3) 2019年2月 (1) 2019年1月 (2) 2018年12月 (1) 2018年11月 (10) 2018年10月 (5) 2018年9月 (6) 2018年8月 (1) 2018年7月 (1) 2018年6月 (2) 2018年5月 (2) 2018年4月 (1) 2018年2月 (1) 2018年1月 (1) Comment「高藥師」於〈[資料庫筆記]Python串接GoogleSheet新增、讀取、更新和刪除〉發佈留言「Claudia」於〈[零基礎上手]Discord自動發言機器人〉發佈留言「Max」於〈[零基礎上手]Discord自動發言機器人〉發佈留言「Claudia」於〈[零基礎上手]Discord自動發言機器人〉發佈留言「han」於〈[零基礎上手]Discord自動參加抽獎機器人(雲端穩定版)〉發佈留言 About Explore



請為這篇文章評分?