注意事項:
1.使用Git過程中,必須通過創(chuàng)建分支進行開發(fā),堅決禁止在主干分支上直接開發(fā)。review的同事有責(zé)任檢查其他同事是否遵循分支規(guī)范。
2.在Git中,默認(rèn)是不會提交空目錄的,如果想提交某個空目錄到版本庫中,需要在該目錄下新建一個 .gitignore 的空白文件,就可以提交了
3.【代碼回溯注意】把外部文件納入到自己的 Git 分支來的時候一定要記得是先比對,確認(rèn)所有修改都是自己修改的,然后再納入。不然,容易出現(xiàn)代碼回溯
4.【代碼回溯注意】多人協(xié)作時,不要各自在自己的 Git 分支開發(fā),然后發(fā)文件合并。正確的方法應(yīng)該是開一個遠(yuǎn)程分支,然后一起在遠(yuǎn)程分支里協(xié)作。不然,容易出現(xiàn)代碼回溯(即別人的代碼被覆蓋的情況)每次采用develop分支進行開發(fā)
5.【代碼回溯注意】每個人提交代碼是一定要 git diff 看提交的東西是不是都是自己修改的。如果有不是自己修改的內(nèi)容,很可能就是代碼回溯
6.【代碼回溯注意】review 代碼的時候如果看到有被刪除掉的代碼,一定要確實是否是寫代碼的同事自己刪除的。如果不是,很可能就是代碼回溯
分支合并及測試上線
開發(fā)分支:develop
master和develop的關(guān)系中表明,master是提供給用戶的正式版本,每次發(fā)布的正式版本都是在master上完成的。develop分支是我們的工作分支,是根據(jù)master創(chuàng)建出來的,代碼是要和master同步的。
在develop上完成的開發(fā)之后,要發(fā)布正式的版本就把這個位于develop上的代碼合并到master分支上面。
// 基于主分支創(chuàng)建工作分支:
<code> git checkout - b develop master </code>
// 切換到主分支master
<code> git checkout master </code>
// 合并develop分支到主分支, develop是 --no-ff 參數(shù),表示正常合并
<code> git merge --no-ff develop </code>
預(yù)測版本分支: release
預(yù)測版本分支,就是在master正式版本發(fā)布之前,用于測試的,應(yīng)用在開發(fā)人員內(nèi)部的。這個分支是從develop工作分支上創(chuàng)建的,過測試之后合并到develop,最后再合并到master中
// 基于develop創(chuàng)建release分支
<code> git checkout -b release-1.0 develop </code>
//之后將這個release合并到develop和master分支上
<code> git checkout master </code>
<code> git merge --no-ff release-1.0 </code>
// 對合并生成的新節(jié)點,做一個標(biāo)簽
<code> git tag -a 1.0 </code>
develop的合并和master一樣
// 用完之后將這個分支刪除
<code> git branch -d release-1.0 </code>
BUG修復(fù)分支: fixBug
| 步驟 | Git操作 |
|---|---|
| 克隆代碼 | git clone 遠(yuǎn)程代碼 |
| 創(chuàng)建分支 | git checkout -b fixBug |
| 在 release 中修復(fù)bug | 無 |
| 單元測試 | 無 |
| 添加代碼到分支的暫存區(qū) | git add somefile |
| 提交代碼到分支 | git commit -m "本次提交的注釋" |
| 切換到主版本 | git checkout master |
| 獲取遠(yuǎn)程最新代碼 | git pull origin master |
| 合并某分支到master分支 | git merge release |
| 解決合并時產(chǎn)生的沖突 請參考分支合并時沖突的解決 | 無 |
| matser上驗收測試 | 無 |
| 準(zhǔn)備上線文檔 | 無 |
| 獲取遠(yuǎn)程最新代碼 | git pull origin master |
| 推送master分支 | git push origin master |
| 通知上線 | 無 |
| 沒有問題了刪除本地分支 | git branch -d fixBug |