git 分支管理和衝突解決

2021-10-02 15:38:13 字數 1750 閱讀 9862

#git branch 分支名 //在當前分支上 建立*** 分支

#git branch ben/dev //斜槓 建立乙個分層的命名

# git checkout *** // 切換到 *** 分支

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

#git branch // 檢視本地分支

#git branch -a //檢視所有分支,包括遠端

#git show-branch -a // 檢視所有分支的詳細資訊

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

git merge ***// 將*** 分支合併到 當前分支

git rebase ***//將*** 分支合併到 當前分支

先看下面的例子,後兩個分支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 命令

git merge branchname 

手動修改衝突

git add modify_filename

git merge --continue

git rebase branchname

手動修改衝突

git add modify_filename

git rebase --continue

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

git format-patch -1 // 基於分支的最新提交生成乙個patch ,生成補丁檔案***.patch

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

git am ***.patch // 基於本地分支打補丁 建立新的提交 ,如下,出現衝突,手動修改衝突檔案

Git 分支管理和衝突解決

git branch 沒有引數,顯示本地版本庫中所有的本地分支名稱。當前檢出分支的前面會有星號。git branch newname 在當前檢出分支上新建分支,名叫newname。git checkout newname 檢出分支,即切換到名叫newname的分支。git checkout b ne...

Git解決分支衝突及分支管理策略

解決分支衝突 通常當git無法自動合併分支時,就必須首先解決衝突後,再提交。下面咱們先建立乙個分支並切換到b1分支 修改咱們之前的hellogit.txt內容,新增一行 create a new named f1 branch 檢視該檔案的狀態,並提交至本地倉庫 然後切換至master分支 然後在m...

git分支衝突解決

報錯 git rejected master master non fast forward 問題 non fast forward 的出現原因在於 git倉庫中已經有一部分 所以它不允許你直接把你的 覆蓋上去 解決方法 兩種 1,強推,即利用強覆蓋方式用你本地的 替代git倉庫內的內容 git p...