Git分支介紹(二)

2021-10-03 08:04:37 字數 2960 閱讀 6203

幾乎所有的版本控制系統都以某種形式支援分支。 使用分支意味著你可以把你的工作從開發主線上分離開來,以免影響開發主線。 在很多版本控制系統中,這是乙個略微低效的過程——常常需要完全建立乙個源**目錄的副本。對於大專案來說,這樣的過程會耗費很多時間。

分支管理

每次提交,git都把它們串成一條時間線,這條時間線就是乙個分支。截止到目前,只有一條時間線,在git裡,這個分支叫主分支,即master分支。head嚴格來說不是指向提交,而是指向master,master才是指向提交的,所以,head指向的就是當前分支。

一開始的時候,master分支是一條線,git用master指向最新的提交,再用head指向master,就能確定當前分支,以及當前分支的提交點.

建立分支命令:

git branch

(branchname)

切換分支命令:
git checkout

(branchname)

當你切換分支的時候,git 會用該分支的最後提交的快照替換你的工作目錄的內容, 所以多個分支不需要多個目錄。

合併分支命令:

git merge
你可以多次合併到統一分支, 也可以選擇在合併之後直接刪除被併入的分支。

開始前我們先建立乙個測試目錄:

$ mkdir gitdemo

$ cd gitdemo/

$ git init

initialized empty git repository...

$ touch readme

$ git add readme

$ git commit -m '第一次版本提交'

[master

(root-commit)

3b58100] 第一次版本提交

1 file changed,

0insertions(+

),0deletions(-

) create mode 100644

readme

列出分支

列出分支基本命令:

git branch
沒有引數時,git branch 會列出你在本地的分支。

$ git branch

* master

此例的意思就是,我們有乙個叫做 master 的分支,並且該分支是當前分支。

當你執行 git init 的時候,預設情況下 git 就會為你建立 master 分支。

如果我們要手動建立乙個分支。執行 git branch (branchname) 即可。

$ git branch dev

$ git branch

* master

dev

現在我們可以看到,有了乙個新分支 dev。

git checkout命令加上-b引數表示建立並切換,相當於以下兩條命令:

$ git branch dev

$ git checkout dev

switched to branch 'dev'

然後,用git branch命令檢視當前分支:

$ git branch

* dev

master

creating a new

branch is quick.

然後提交:

$ git add readme.txt 

$ git commit -m "branch test"

[dev b17d20e] branch test

1 file changed,

1insertion(+

)

現在,dev分支的工作完成,我們就可以切換回master分支:

$ git checkout master

switched to branch 'master'

切換回master分支後,再檢視乙個readme.txt檔案,剛才新增的內容不見了!因為那個提交是在dev分支上,而master分支此刻的提交點並沒有變

現在,我們把dev分支的工作成果合併到master分支上:

$ git merge dev

updating d46f35e.

.b17d20e

fast-forward

readme.txt |1+

1 file changed,

1insertion(+

)

git merge命令用於合併指定分支到當前分支。合併後,再檢視readme.txt的內容,就可以看到,和dev分支的最新提交是完全一樣的。

合併完成後,就可以放心地刪除dev分支了:

$ git branch -d dev

deleted branch dev

(was b17d20e)

.

刪除後,檢視branch,就只剩下master分支了:

$ git branch

* master

因為建立、合併和刪除分支非常快,所以git鼓勵你使用分支完成某個任務,合併後再刪掉分支,這和直接在master分支上工作效果是一樣的,但過程更安全。

git鼓勵大量使用分支:

檢視分支:git branch

建立分支:git branch

切換分支:git checkout

建立+切換分支:git checkout -b

合併某分支到當前分支:git merge

刪除分支:git branch -d

git 分支原理介紹

git的工作原理 git版本控制是通過儲存不同時間點的快照實現的。git在提交操作時,git會儲存乙個提交物件,該提交物件中會包含 git的分支,其實本質上是指向提交物件的可變指標。由於建立分支的高效性,所以,git鼓勵開發人員建立分支!首先在建立git專案的時候,缺省會建立master分支!這個m...

Git 二 Git分支管理策略

如果你嚴肅對待程式設計,就必定會使用 版本管理系統 version control system 眼下最流行的 版本管理系統 非git莫屬。相比同類軟體,git有很多優點。其中很顯著的一點,就是版本的分支 branch 和合併 merge 十分方便。有些傳統的版本管理軟體,分支操作實際上會生成乙份現...

Git 二 Git分支管理策略

如果你嚴肅對待程式設計,就必定會使用 版本管理系統 version control system 眼下最流行的 版本管理系統 非git莫屬。相比同類軟體,git有很多優點。其中很顯著的一點,就是版本的分支 branch 和合併 merge 十分方便。有些傳統的版本管理軟體,分支操作實際上會生成乙份現...