當項目進行到一定階段后,對版本管理會出現兩個需求:
1. 穩定的發布版本,但是遇到bug需要盡快修復,并繼續保持穩定;
2. 變動頻繁的開發版本,不斷開發新的功能,并在某一個時刻需要合并到發布版本上,實現新版本的發布。
下面我們就以這兩個需求來介紹一下GIT是如何操作的。
**穩定版本的維護**
我們以master作為穩定的發布版本,當遇到某個bug時,需要首先切換到master分支上
```
git checkout master
```
可以直接在這個分支上工作,進行bug修復,也可以創建一個短期分支來修復bug
```
git checkout -b iss001
```
當在iss001分支上完成bug修復并測試通過后,需要首先回到master分支,然后合并iss001分支
```
git checkout master
git merge iss001
```
合并完成后就可以刪除iss001分支了
```
git branch -d iss001
```
至此,對master分支的維護就結束了。注意,如果沒有執行push操作,那么所有的分支信息都僅僅保存在本地,而并不會和服務器進行交互。
**開發版本的維護**
為了實現對開發版本的不斷更新,我們需要創建一個長期分支來實現這個目標,分支的名稱可以叫做dev
```
git checkout -b dev
```
然后將這個分支推送到遠程
```
git push
```
任何時候都可以從遠程把這個分支獲取回來
```
git fetch origin dev
```
然后就可以和在master分支上工作一樣,就在dev分支上進行工作。
當開發進行到一定階段時,需要將dev分支發布到master分支上,可以參考之前合并短期分支的方法,首先切換到master分支上,然后合并dev分支
```
git checkout master
git merge dev
```
注意這里并不需要刪除dev分支,因為我們還要繼續在這個分支上進行開發。
當然為了實現發布版本的記錄,可以在合并dev分支之前,把原來的master分支保存為一個以版本號命名的分支,例如v001
```
git checkout master
git branch v001
```
這樣我們可以在任何時候切換到v001版本上查看當時的情況。