git學習 分支管理

2021-08-15 14:22:53 字數 2806 閱讀 4721

嚴格的來說head不是指向提交,而是指向master,master才是指向分支的,所以head指向的就是當前的分支。每當我們commit一次的時候提交就會向前走一步,git把這些提交串成一條時間線,這個時間線就是乙個分支。

分支的作用:舉個例子,假如當前有乙個檔案readme.txt,我們新建立了乙個分支dev,然後切換到這個分支工作對readme.txt進行修改,然後提交,這個提交是提交到了dev分支,master分支還在原地沒有動,此時我們在切換回master分支發現readme.txt檔案還是修改前的內容,這個時候只需要將master分支和dev分支合併就可以了,然後刪除dev分支。這樣看來是不是方便了我們的工作。

1.下面開始練習

1.建立並切換到當前分支

git checkour -b dev//建立了dev分支並且切換到當前分支,即現在dev為主分支,我們可以用git branch檢視

然後對檔案進行修改並上傳可以看到我們上傳到了dev

現在切換回master分支,檢視當前檔案內容,發現沒有變,然後合併dev分支和master

git checkout master    git merge dev//把當前分支合併到dev分支,使用的是快速合併,即直接把master指向dev的提交,這樣主分支和更新齊頭並進了,這個時候可以刪除dev分支了  git branch -d dev

小結:git branch//檢視分支

gti branch -d dev //刪除分支

git checkout master //切換分支

git checkout-b dev //建立並切換分支

gti merge dev//快速合併分支

2.解決衝突

問題描述:建立新的分支feature,然修改readme.txt,提交,然後切換回master繼續修改提交,這個時候分支就如下圖

這種情況無法使用快速合併,如果使用會產生衝突,因為兩個檔案存在衝突,我們可以試試看

然後我們檢視readme.txt的內容

此時我們在對檔案進行修改將上述兩個地方合併起來,在提交,此時分支變成了如下如

用引數 git log --graph --pretty=oneline --abbrev-commit可以看分支合併的情況

最後刪除分支feature就可以了

3.分支管理策略

在一般情況下,合併分支的時候,如果可能,git會用快速合併的方法,但是這種模式,刪除分支以後會丟失掉分支的資訊,所以我們應該強制禁用快速合併,使用-no-ff引數合併,但是這種合併會新生成乙個commit,這樣就可以從分支看出分支資訊了

因為會新建立commit所以我們加上-m.

分支策略:在實際的開發中,我們應該按照幾個基本的原則進行分支管理:

首先master分支應該是非常穩定的分支,也就是用來發布新版本的,並不幹活。在哪幹活呢?幹活都在dev上面,也就是說dev分支是不穩定的,到某個時候,比如1.0版本發布時,再把dev合併到master身上,在master分支上發布1.0版本

4.bug分支

假如我當前正在dev分支幹活已經新增但是沒有提交,但是此時需要我修改另外乙個檔案的bug,但是我此時檔案還沒有弄完,這個時候我們可以把此時的工作現場保護起來git stash,然後去建立bug修復好以後和master合併然後刪除bug分支,修復好以後再回來恢復現場就可以了git stash pop。

注意開發新功能最好新建乙個分支合理利用分支

5.推送分支:

就是把該分支上的所有本地提交推送到遠端庫。推送時候要指定bending分支,這樣git就會將其對應到遠端的分支上。master和dev分支要與遠端同步。剩下的自己看著辦

6.抓取分支:

一般情況下clone的遠端庫只能看到master分支,需要建立遠端庫的dev分支到本地的話,需要git checkout -b dev origin/dev命令

1.如果你git push origin dev失敗了,說明你小夥伴的最新提交和你的最新提交有衝突,需要先git pull把最新的提交從origin/dev上面抓取下來 ,在本地合併然後在推送。

假如git pull失敗的話就說明沒有指定本地的dev分支與遠端的dev分支連線。所以使用命令git branch --set -upstream dev origin/dev,然後在git pull

git學習 分支管理

詳情見 git checkout命令加上 b引數表示建立並切換,相當於以下兩條命令 git branch dev git checkout devgit branch 檢視當前分支 在dev分支上建立的檔案 工作區 以及提交到暫存區和檔案庫 再master分支上是看不到的 使用git merge d...

git學習筆記 git的分支管理

一 分支工作原理 在本地倉庫操作中我們知道,其實git操作的不是檔案本身,而是利用head指標操作檔案的修改刪除等變化,每次修改形成了相當於一條時間線,如下圖 master是乙個主分支,而head指向的是當前的分支,嚴格來說不是指向提交,因為當前分支是master,所以head指向的是master,...

git 分支管理

一 遠端倉庫有master和dev分支 1.轉殖 git clone 這個git路徑是無效的,示例而已 2.檢視所有分支 git branch all 預設有了dev和master分支,所以會看到如下三個分支 master 本地主分支 origin master 遠端主分支 origin dev 遠...