Git教程——分支 (branch)

1.前言

很多時候我們需要給自己或者客戶用一個穩定的版本庫, 然後同時還在開發另外一個升級版. 自然而然, 我們會想到把這兩者分開處理, 用戶使用穩定版, 我們開發我們的開發版. 不過 git 的做法卻不一樣, 它把這兩者融合成了一個文件, 使用不同的分支來管理. 所以這一節我們來說說 git 中的 分支 Branch.

2.分支圖例

在這裏插入圖片描述
之前我們說編輯的所有改變都是在一條主分支 master 上進行的. 通常我們會把 master 當作最終的版本, 而開發新版本或者新屬性的時候, 在另外一個分支上進行, 這樣就能使開發和使用互不干擾了

使用 graph查看分支

我們之前的文件當中, 僅僅只有一條 master 分支, 我們可以通過 --graph 來觀看分支:

$ git log --oneline --graph
# 輸出
* 129fee1 (HEAD -> master) back to 1 and add comment for 1.py
* bbb653a chan 1
* 9ec3e89 cre 1.py
* 01d0fdc back to change 1 and add comment for 1.py
* 683671d change 2
* 16a0f74 chang 1
* aa3f406 create 1.py

在這裏插入圖片描述

3.使用branch創建 dev 分支

接着我們建立另一個分支 dev, 並查看所有分支:

$ git branch dev    # 建立 dev 分支
$ git branch        # 查看當前分支

# 輸出
  dev       
* master    # * 代表了當前的 HEAD 所在的分支

在這裏插入圖片描述
當我們想把 HEAD 切換去 dev 分支的時候, 我們可以用到上次說的 checkout:

$ git checkout dev

# 輸出
Switched to branch 'dev'
--------------------------
$ git branch

# 輸出
* dev       # 這時 HEAD 已經被切換至 dev 分支
  master

在這裏插入圖片描述
使用 checkout -b + 分支名, 就能直接創建和切換到新建的分支:

$ git checkout -b  dev

# 輸出
Switched to a new branch 'dev'
--------------------------
$ git branch

# 輸出
* dev       # 這時 HEAD 已經被切換至 dev 分支
  master

dev 分支中的 1.py 和 2.py 和 master 中的文件是一模一樣的. 因爲當前的指針 HEAD 在 dev 分支上, 所以現在對文件夾中的文件進行修改將不會影響到 master 分支.

我們在 1.py 上加入這一行 # I was changed in dev branch, 然後再 commit:

$ git commit -am "change 3 in dev"  # "-am": add 所有改變 並直接 commit

好了, 我們的開發板 dev 已經更新好了, 我們要將 dev 中的修改推送到 master 中, 大家就能使用到正式版中的新功能了.

首先我們要切換到 master, 再將 dev 推送過來.
要注意的是, 如果直接 git merge dev, git 會採用默認的 Fast forward 格式進行 merge, 這樣 merge 的這次操作不會有 commit 信息. log 中也不會有分支的圖案. 我們可以採取 --no-ff 這種方式保留 merge 的 commit 信息.

$ git checkout master
$ git branch
$ git merge --no-ff -m "keep merge info" dev         # 保留 merge 信息
$ git log --oneline --graph

# 輸出
*   96f7ccf (HEAD -> master) keep merge info
|\  
| * 9123071 (dev) change 3 in dev
|/  
* 129fee1 back to 1 and add comment for 1.py
* bbb653a chan 1
* 9ec3e89 cre 1.py
* 01d0fdc back to change 1 and add comment for 1.py
* 683671d change 2
* 16a0f74 chang 1
* aa3f406 create 1.py

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章