遠程倉庫有master和dev分支的情況
1. 克隆代碼
git clone https://somewhere.com/master-dev.git
2. 查看所有分支
git branch --all # 默認有了dev和master分支,所以會看到如下三個分支 # master[本地主分支] origin/master[遠程主分支] origin/dev[遠程開發分支] # 新克隆下來的代碼默認master和origin/master是關聯的,也就是他們的代碼保持同步 # 但是origin/dev分支在本地沒有任何的關聯,所以我們無法在那里開發
3. 創建本地關聯origin/dev的分支
git checkout dev origin/dev
# 創建本地分支dev,並且和遠程origin/dev分支關聯,本地dev分支的初始代碼和遠程的dev分支代碼一樣
4. 切換到dev分支進行開發
git checkout dev
# 這個是切換到dev分支,然后就是常規的開發
遠程倉庫只有mater分支的情況
1. 克隆代碼
git clone https://somewhere.com/master-dev.git
2. 查看所有分支
git branch --all # 默認只有master分支,所以會看到如下兩個分支 # master[本地主分支] origin/master[遠程主分支] # 新克隆下來的代碼默認master和origin/master是關聯的,也就是他們的代碼保持同步
3. 創建本地新的dev分支
git branch dev # 創建本地分支
git branch # 查看分支
# 這是會看到master和dev,而且master上會有一個星號
# 這個時候dev是一個本地分支,遠程倉庫不知道它的存在
# 本地分支可以不同步到遠程倉庫,我們可以在dev開發,然后merge到master,使用master同步代碼,當然也可以同步
4. 發布dev分支
git push origin dev:dev
# 發布dev分支指的是同步dev分支的代碼到遠程服務器
# 這樣遠程倉庫也有一個dev分支了
5. 在dev分支開發代碼
git checkout dev # 切換到dev分支進行開發
6. 開發代碼之后,兩個選擇
第一個:如果功能開發完成了,可以合並主分支
git checkout master # 切換到主分支
git merge dev # 把dev分支的更改和master合並
git push # 提交主分支代碼遠程
git checkout dev # 切換到dev遠程分支
git push # 提交dev分支到遠程
第二個:如果功能沒有完成,可以直接推送
git push
# 提交到dev遠程分支
# 注意:在分支切換之前最好先commit全部的改變,除非你真的知道自己在做什么
7. 刪除分支
git push origin :dev
# 刪除遠程dev分支
下面兩條是刪除本地分支
git checkout master # 切換到master分支
git branch -d dev # 刪除本地dev分支
在服務端需要維護的分支應當包含:
master: 用於生產環境發布
release: 用於測試環境發布
hotfixes: 用於master的bug修復
dev-* : 用於各個功能團隊開發