分支名規範: feature[fixbug]-功能名[修復bug的名,只能是英文]
增加功能的分支名feature-開頭
修改bug的分支名fixbug-開頭
說明: 修復bug,新增功能的操作 也是一樣的,只是分支名規範而已。
操作口頭決:
a切換分支
先提交本地所修改的並且更新到遠程分支,
b新建分支(修改bug/新增功能),
切換主master分支[注意 需步驟a],拉取master最新代碼,從master創建分支新的分支
c分支提交給測試前 【或者正式上線】
切換要被測的分支[注意 需步驟a]
拉取要被測的遠程分支最新代碼 【修改衝突】
拉取master最新的代碼 【修改衝突】
修復衝突後,提交到遠程分支
案例1. 增加一個新的功能叫 登錄
git checkout master #切換master主分支
git pull origin master #拉取master最新的代碼
git checkout -b feature-login #創建一個 feature-login分支 該分支主要是 登錄功能
案例2. 增加一個新的功能叫 註冊
git branch #查看下當前我所在的分支,由於上面我 checkout -b 創建並切換到 新的分支feature-login
#現在我爲了不讓 登錄和註冊功能 混淆,因此,我需要先把本地 有關登錄功能修改的代碼 提交到本地/遠程
git status #查看下 這個登錄功能的分支 修改了哪些文件
git add . #選擇所有修改的文件 注意這個. 點,是提交所有修改的文件,有時候你並不想把所有文件都提交,所以這裏要注意
git commit -m "這些修改的文件 做的是 登錄功能" #這裏備註說明,這些被選擇的文件是幹嘛的, 並且提交到本地倉庫
git pull origin feature-login #拉取 feature-login的最新代碼
git push origin feature-login # 把本地修改的記錄 都更新到遠程分支上面[遠程登錄功能分支]
git checkout master #因爲接下來我需要做新的功能 叫註冊功能,所以先切換master[非常重要!!!!]
git checkout -b feature-register #新建並切換到 feature-register分支 [註冊功能的分支]
....接着依次類推重複案例1
案例3. 功能做完了,就要去 跟測試人員說,你要測的是這個功能分支,如登錄功能
git branch #查看我當前所處的分支,當前在 feature-register註冊功能的分支
git status #查看當前所處的分支修改了什麼問題件
git add . #選擇修改的文件
git commit -m "註冊功能" #給修改的文件備註 並提交到本地
git pull origin feature-register #拉取註冊分支最新的代碼
git push origin feature-register #把本地修改的代碼 更新到遠程分支上面
git checkout feature-login #切換登錄功能的分支
git pull origin feature-login #拉取登錄功能分支的最新代碼
git pull origin master #拉取主分支master的代碼
git push origin feature-login #把最新的代碼 更新到遠程分支上面
案例4.有時候執行git pull 時候,看到命令行說 某某某路徑文件進行衝突
衝突的文件必須修復好,才能 提交到遠程分支!!
打開衝突的文件,發現很多 ======等號,這時候跟同事反饋下 哪些代碼要,哪些代碼不能要
修改所有的衝突文件後,需要提交到遠程分支
git branch #查看當前分支
git add . #選擇 修改後的衝突文件
git commit -m "修改衝突" # 備註下這些文件的原因並提交到本地倉庫
git push origin feature-login # 更新到遠程分支
案例5. 測試的功能分支 已經測試完畢,並確定能上線, 如登錄功能 可以上線了
原理[保持 當前測試分支 與主幹master的分支 是一樣的,所以每次上線時,都需要拉取master分支]
git checkout feature-login #切換登錄功能的分支
git pull origin feature-login #拉取登錄功能分支的最新代碼
git pull origin master #拉取主分支master的代碼
git push origin feature-login #把最新的代碼 更新到遠程分支上面