開發一個版本,采用的發布流程:
(1).從master的最新代碼拉取一個開發分支,在上面進行開發
(2).在開發分支上不斷地進行提交版本,期間,master也會有因為其他版本上線而不停有版本合並
(3).要發布的時候,把分支重新合到master分支
1.什么是分支
分支是一個commit對象鏈:一條工作記錄線
git每一次提交版本,都會在該版本上存一個字段parent,記錄的是上一個提交的版本號,這樣就可以從一個提交的快照里拿到之前所有提交過的記錄
2.新建分支是如何操作的
先了解2個重要的概念——HEAD和master:HEAD指向的就是當前分支(某個時刻你所處的分支),master指向提交
(1)創建分支之前,HEAD指向master
(2)創建分支b1,HEAD指針指向b1
與svn不同的是,svn創建分支會把全部內容拷貝一份,git創建分支只會創建一個指針
3.實踐
(1) # 新建一個倉庫用於測試
git init
# 新建一個文件用於測試,並寫入"第一次提交"
vim test.txt
# 提交修改到倉庫
git add . && git commit -m '第一次提交'
# 修改文件test.txt,添加一行"第二次提交"
vim test.txt
# 第二次提交修改到倉庫
git add . && git commit -m '第二次提交'
細心的朋友可能已經發現了,這兩次提交我們都是在master(即主分支上)提交的,此時項目分支圖如圖所示
(2) 我們創建一個分支b1,一個分支b2,並演示一下分支切換
# 創建分支b1
git branch b1
# 切換到分支b1
git checkout b1
# 切換回主分支master,如圖所示
git checkout master
# 創建並切換分支b2
git checkout -b b2
# 切換回主分支master,如圖所示
git checkout master
創建分支后,此時項目分支圖如圖所示
(3) 嘗試一下在不同分支下工作
在master進行工作
# 在master新建一個master.txt文件
touch master.txt
# 提交一次
git add . && git commit -m 'master上的第三次提交'
# 查看當前文件內容
ll
(4) 切換到其他分支看看,可以發現其他分支下並沒有master.txt文件,是不是很神奇
# 切換到分支b1
git checkout b1
# 查看當前文件夾文件
ll
# 切換到分支b2
git checkout b2
# 查看當前文件夾文件
ll
(5) 分別在b1,b2工作
# 切換到分支b1
git checkout b1
# 創建文件
touch b1.txt
# 提交到倉庫
git add . && git commit -m 'b1上的第三次提交'
# 查看當前文件目錄
ll
# 切換到分支b2
git checkout b2
# 創建文件
touch b2.txt
# 提交到倉庫
git add . && git commit -m 'b2上的第三次提交'
# 查看當前文件目錄
ll
此時項目分支圖如圖所示
(6) 當發版時我們需要進行合並分支,現在我們把b2分支合並到master上
# 切換到分支master
git checkout master
# 合並代碼
git merge b2
是不是很方便,當你同一時間一個項目遇到多處修改使用git會有多舒服你用過才知道。此時項目分支圖如圖所示
大功告成!