git 分支管理和衝突解決

創建分支

#git branch 分支名 //在當前分支上 創建xxx 分支
#git branch ben/dev //斜槓 創建一個分層的命名

切換分支

# git checkout xxx // 切換到 xxx 分支
# git checkout -b xxx// 創建 並切換 到 xxx 分支 等價於 git branch xxx git checkout xxx兩條指令

查看分支

#git branch // 查看本地分支

#git branch -a //查看所有分支,包括遠程

#git show-branch -a // 查看所有分支的詳細信息

刪除分支

git branch -D 分支名//刪除分支,不能刪除當前分支

合併分支

git merge xxx// 將xxx 分支合併到 當前分支
git rebase xxx//將xxx 分支合併到 當前分支
先看下面的例子,後兩個分支master, dev
commit 節點的字母排序按照提交時間排序,

合併前狀態

A -->B–>C–>E master
|
D—>F–>G dev

將master 分支合併到dev分支上,並查看git log

#git checkout dev 
#git merge  master

A --> B–>C–>D–>E->F–>G–>merge comiit //git log
基於時間軸合併

#git checkout dev 
#git rebase  master

而dev 分支執行git rebase master ,查看 git log

A—>B—>C—>E—>D—>F—>G // git log
dev 的提交 改基到 master 的最新的提交上,dev 的 分支基於提交版本從 B 到 E。
區別:
merge :兩個分支按照時間順序合在一起
rebase: 站在另一個分支的肩膀上

使用:
當需要合併別人的修改,一般使用merge命令 ;
當需要基於某個分支之上提交補丁或開發修改,一般用 rebase 命令

分支合併衝突

merge conflict

git merge branchname 
手動修改衝突
git add modify_filename 

git merge --continue

rebase conflict

git rebase branchname
手動修改衝突
git add modify_filename
git rebase --continue

git am 打補丁

這種方式常用於實際工作中需要在另一個分支測試驗證修改的情況

git format-patch -1 // 基於分支的最新提交生成一個patch ,生成補丁文件***.patch

在這裏插入圖片描述

git checkout branchname // 切換到需要驗證的分支上

git am ***.patch // 基於本地分支打補丁 創建新的提交 ,如下,出現衝突,手動修改衝突文件
在這裏插入圖片描述
git add modify_filename
git am --resolved
在這裏插入圖片描述

git log
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章