中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

git如何合并分支代碼

發布時間:2023-01-04 11:54:40 來源:億速云 閱讀:365 作者:iii 欄目:軟件技術

這篇文章主要講解了“git如何合并分支代碼”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“git如何合并分支代碼”吧!

git合并分支代碼的方法:1、使用“git merge”命令,該命令用來做分支合并,可以將其他分支中的內容合并到當前分支中。2、使用“git rebase”命令,該命令用于改變當前的分支的基點,進而實現分支合并。

建立多人開發場景

1. 創建倉庫

// 初始化倉庫
git init
// 創建a.txt
touch a.txt
// 創建b.txt
touch b.txt
// 加入暫存區
git add .
// 提交
git  commit -m 'initial'

2. 創建 feature 分支

git checkout -b feature

3. 兩個分支同時開發

feature 分支開發下一版本新功能,提交了兩次,分別修改 a.txt 文件和 b.txt 文件。

git如何合并分支代碼

master 分支開發本次版本功能,同樣提交了兩次,且修改了 a.txt 文件和 b.txt 文件。

git如何合并分支代碼

當前分支情況如下圖,各節點上面的字符是每次 commit 的散列值,當前 master 分支的 header 在 c5 節點上,feature 分支的 header 在 c3 節點上。
git如何合并分支代碼

這個時候需要將 feature 分支合并回 master 分支,有兩種方案:

  • 在 master 分支上直接 merge feature 分支;

  • 是先在 feature 分支上 rebase(變基),然后在 master 分支上 merge feature 分支。

下面分別說明一下這兩種方案:

合并命令1:git merge

git merge 用來做分支合并,將其他分支中的內容合并到當前分支中。

git merge 操作比較暴力,也是用的比較多的方式,下面演示的是 feature 分支合并至 master 分支,具體過程如下:

  • 找到 feature 分支和 master 分支的最近共同祖先 commit 節點 c1;

  • 把 feature 分支的最新一次 commit 節點 c3 和 master 分支上的最新一次 commit 節點 c5 合并,此時若有沖突,則一次性解決所有沖突,然后生成一個新的 commit 節點 c6;

  • 同時根據兩個分支上的 commit 時間的先后順序,依次放到 master 分支上,使用git log可以看到時間順序。

上面流程的結果示意圖如下所示:

git如何合并分支代碼

在項目中的操作命令如下。可以看到執行 git merge feature 命令后,存在沖突,進入 merging 工作區,然后一次性解決所有沖突后,提交一個新的 commit。

git如何合并分支代碼

執行 gitk 命令行,可以在界面上看到當前分支如下圖所示。有一個新的 commit。
git如何合并分支代碼

合并命令2:git rebase

這個命令從名字上就可以直觀看出它的功能:改變當前的分支的基點。對于 feature 分支,它是從 master 分支的 c1 節點創建的分支,所以它的基點就是 c1。如果在 feature 分支上執行 git rebase master ,其過程大致如下:

  • 找到當前 master 分支最新的 commit 節點 c5,將 feature 分支的基點變成 c5 節點。;

  • 若 feature 分支與 master 分支存在沖突,那么將根據 feature 分支的提交時間,依次解決沖突,并修改 feature 分支此次 commit 的散列值。

  • 最終在分支上看,呈現一條直線,但是存在歷史commit覆寫的問題。

上面過程的結果示意圖如下所示,其中 c2’和 c3’表示散列值改變了。

git如何合并分支代碼

值得注意的是:

  • 執行 rebase 操作的時候,需要保證 master 分支處于最新狀態,否則在 merege 合并的時候也可能存在沖突,就失去使用 rebase 的意義。

  • 千萬不要對已經推到遠程的內容進行rebase,如果有人拉取遠程代碼后修改并提交,分支會變得極其麻煩。

了解其基本過程后,我們就可以是用 rebase 命令開始進行合并分支的操作:

  • 在項目中執行 git rebase master,如下所示。因為兩次提交都存在沖突,故在 rebase 工作區中需要依次解決這些沖突。

git如何合并分支代碼

在 feature 分支上執行 gitk 命令,可以在界面中看到:
git如何合并分支代碼

  • feature 分支完成變基之后,切換回 master 分支執行 git merge feature,就可以完成合并操作。

git如何合并分支代碼

在 master 分支上執行 gitk,其分支結構如下。可以看到分支呈現一條線,看上去非常清爽。

git如何合并分支代碼

說明:git stash

有時候分支上的代碼還沒開發完成,需要合并分支,此時只需要:

1、執行 git stash 將工作區內容存儲起來,然后選擇上述兩種合并分支的方式進行分支合并。

git如何合并分支代碼

2、完成分支合并后,切回開發的分支,執行 git stash pop 將工作區內容彈出就可以繼續愉快的寫代碼了。

git如何合并分支代碼

感謝各位的閱讀,以上就是“git如何合并分支代碼”的內容了,經過本文的學習后,相信大家對git如何合并分支代碼這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

git
AI

年辖:市辖区| 奎屯市| 阿巴嘎旗| 双桥区| 平远县| 宝清县| 巴中市| 仙游县| 陵水| 永泰县| 周宁县| 札达县| 阳东县| 涿鹿县| 杭州市| 衡阳县| 习水县| 丰顺县| 泰州市| 虹口区| 肃北| 安塞县| 富平县| 贺州市| 永吉县| 东宁县| 延川县| 泰来县| 永顺县| 灵寿县| 诸城市| 科技| 余姚市| 墨竹工卡县| 淮滨县| 报价| 东平县| 米林县| 策勒县| 海盐县| 乐山市|