git 使用筆記(三)-分支的使用

簡單介紹

以前說過,每次修改以後,Git 並非保存這些修改以後的差別變化,實際上就像一個照相機同樣,將修改後的文件拍下做爲文件快照,記錄在一個微型的文件系統中。在 Git 中提交時,會保存一個提交對象,這個對象包含一個暫存內容快照的指針。而 Git 中的分支其本質上是一個指向 commit 對象的可變的指針,使用 master 做爲分支的默認名字,一般指向的是最新的一次提交。git

每次的提交,Git 把他們穿起來連成一條線,而主分支master就在這條線上隨着提交測更新移動,而 HEAD 指向master,表示咱們當前處在 master 分支上(很差意思,直接就用廖雪峯老師的圖了,他的教程請戳這裏指針

images

建立一個叫作 dev 分支,這個分支默認會只想當前你所處在的提交對象上,切換到這個分支上後,HEAD 便指向了 dev。code

images

從這個時候開始,對工做區的操做都只是在 dev 分支上發生了,在 dev 的上提交一次以後,master 指向原來的那個提交對象,而 dev 會指向最新的提交對象。咱們稱:master 落後了 dev 一個 commit。當咱們試圖將 master 指向 dev 當前的提交時,這個操做就是合併分支。對象

在上述的這幾個過程當中,工做區的內容沒有變化,整個過程就是修改幾個指針而已,幾乎就是瞬間完成。教程

建立與合併

建立一個 crisp 分支,而後切換到這個分支:開發

git checkout -b crisp
Switched to a new branch 'crisp'

git checkout -b 表示建立並切換分支,至關於將下面兩步操做合併成一步來作get

git branch crisp        // 建立分支
git checkout crisp      // 切換到指定的分支

同時,能夠用 git branch 查看分支,這個命令會列出全部的分支,在當前的分支前面會表上一個 * 號。it

分支與分支之間相互獨立,彼此絕緣,因此能夠在 主分支master的基礎上分出若干個分支,進行不一樣的操做,好比不一樣模塊的開發,bug的修復等,工做完成以後合併到主分支就好了。怎麼合併分支呢?ast

假設咱們正在 dev 分之上開發,當開發完成後,在這個分之上提交代碼基礎

git add .
git commit -m "dev 開發完成!"

此時的提交是在 dev 分支上的提交,當你切回 master 上是,dev 上的修改你都看不到。此時的 master 若是沒有人提交過的話,則停留在切換分支以前的那個提交點上,也就是落後與 dev 分支。這個時候咱們就須要將分支合併了。

git checkout master     // 先切回 master 分支 
git merge dev           // 手動將dev 分支上的提交合併到 master 上

當某一個分支不在須要的時候,能夠將它刪除

git branch -d branchname

小小的總結一下:

查看分支:git branch

建立分支:git branch name

切換分支:git checkout name

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

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

刪除分支:git branch -d name
相關文章
相關標籤/搜索