1. 程式人生 > >git 分支的創建和切換

git 分支的創建和切換

tno pow qpi apt hrn try fun zabb pso

每次提交,GIT 都會將他們串成一個時間線,截止到目前,只有一個時間線,GIT裏叫這個分支為主分支,叫master,HEAD指向master,master指向提交,HEAD指向當前的分支.

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

技術分享

當我們創建新的分支,例如dev時,Git新建了一個指針叫dev,指向master相同的提交,再把HEAD指向dev,就表示當前分支在dev上:

技術分享

Git創建一個分支很快,因為除了增加一個dev指針,改改HEAD的指向,工作區的文件都沒有任何變化!

從現在開始,對工作區的修改和提交就是針對dev

分支了,比如新提交一次後,dev指針往前移動一步,而master指針不變:

技術分享

假如我們在dev上的工作完成了,就可以把dev合並到master上。Git怎麽合並呢?最簡單的方法,就是直接把master指向dev的當前提交,就完成了合並:

技術分享

所以Git合並分支也很快!就改改指針,工作區內容也不變!

合並完分支後,甚至可以刪除dev分支。刪除dev分支就是把dev指針給刪掉,刪掉後,我們就剩下了一條master分支:

技術分享

我們創建dev分支,然後切換到dev分支:

git checkout -b dev 加上-b參數表示創建並切換,相當於以下兩條命令

git branch dev git checkout dev

修改工作區一個文件測試下,然後提交

git add test.txt

git commit -m "test"

再切回master:

git checkout master 會發現剛才修改的內容又回去了,沒有發生變化,因為剛那個提交是在dev分支上,master分支此刻的提交並沒有變:

技術分享

合並分支到master

首先要切換到master,再執行git merge dev命令,然後就可以刪除dev分支了,git branch -d dev

git 分支的創建和切換