git操作詳解(二) 分支管理

2022-07-01 11:09:07 字數 2536 閱讀 8818

分支管理

一、建立分支

重新建立乙個倉庫git_lvhuayan_2

1、手動新增乙個new01.py檔案,內容為print('new01')

2、使用 git add * 、git commit -m 「第一次提交」 進行提交

3、手動新增乙個new02.py檔案,內容為print('new02')

4、使用 git add * 、git commit -m 「第二次提交」 進行提交

5、通過命令 git branch 檢視當前分支情況

6、通過命令 git branch dev 建立乙個dev的新分支

7、通過命令 git checkout dev 切換到dev分支

備註:步驟2、3可以通過命令git checkout -b dev 完成相同操作

二、新分支上提交並切換到master分支

1、對new02.py檔案進行修改,內容為print('devnew02')

2、使用 git add * 、git commit -m 「dev分支第一次提交」 進行提交

3、使用 git log --pretty=oneline 檢視git日誌

4、使用命令 git checkout master 切換回master分支,此時會發現new02.py的修改已經沒了,因為已經切換到master分支

三、把dev分支合併到master分支

1、使用命令git merge dev 把dev分支上的內容合併到分支master,git merge命令用於合併指定分支到當前分支,fast-forward表明這次合併是「快進模式」,也就是直接把master指向dev的當前提交,所以合併速度非常快。

2、當分支合併後,可以通過命令git branch -d dev 刪除dev分支

四、分支合併時的衝突

1、使用命令git checkout-b dev建立並切換到分支dev

2、對new02.py檔案進行修改,新增一行內容為print('dev')並提交到版本庫

3、使用命令 git checkout master

4、對new02.py檔案進行修改,新增一行內容為print('master')並提交到版本庫上面這種情況,git無法執行"快速合併",只能試圖把各自的修改合併起來,但這種合併就可能會有衝突。衝突原因:master分支和dev分支各自都分別有新的提交,並且編輯了同乙個檔案。

5、衝突解決:同時開啟new02.py檔案,<<<<>>>>>dev上面表示dev分支做的修改,對new02.py檔案進行編輯,把<<<<>>>dev去掉,並由自己選擇需要儲存的內容,使用git add*、git commit-m「衝突解決」提交到版本庫

5、forward模式fast forward意為」快進模式」。主要使用在多分支合併的情況下。即:當前分支合併另乙個分支的時候,如果合併的過程中沒有衝突的時候,則會通過直接移動兩個分支的指標,來達到合併的過程,這個過程就叫做fast forward。在fast forward模式下,當我們合併分支後,將會刪除無用的分支dev,在這種情況下,fast forward就有乙個弊端暴露了,即:刪除分支後,會丟掉分支的所有資訊。在合併dev分支的時候,通過命令git merge --no-ff -m 「禁用fast forward模式合併分支」 dev  可以強制禁用fast forward模式提交,然後再使用命令git log --graph --pretty=oneline --abbrev-commit 檢視日誌即可看到分支資訊。

以下圖為禁用fast forward模式: 

Git 學習筆記(二)分支管理

git branch 顯示所有分支,其中以 號開頭的為當前活躍分支 git branch branch name old branch or any commit 建立分支 或將已刪除的分支恢復到某個提交節點 git branch d branch name 刪除分支 d 選項為強制刪除 git c...

Git常用命令(二) 分支管理

對於專案開發來說,乙個人不可能負責全部的 需要多人合作,這就用到分支的重要性了。假設你準備開發乙個新功能,但是需要兩周才能完成,第一周你寫了50 的 如果立刻提交,由於 還沒寫完,不完整的 庫會導致別人不能幹活了。如果等 全部寫完再一次提交,又存在丟失每天進度的巨大風險。現在有了分支,就不用怕了。你...

Git學習系列 五 分支管理詳解

分支管理在咱們實際工作中經常用到,因此掌握分支對於咱們從事移動開發並且使用到了git這樣的分布式版本管理工具來說是很有必要的。比如當你餓了的時候,甲幫你做飯,一幫你燒菜 當然你也可以自己做飯燒菜。但是咱們仍然可以看到,我是從乙個餓的狀態變成了乙個飽的狀態,也就是我之前空腹,後來我由甲 分支 和乙 分...