在多人開發的項目中,通常會有 master、dev、test 分支,每一個分支的做用也是不同的。master 是用於線上環境,個別負責人才有合併權限的;dev 用於開發環境;test 用於測試環境。通常的合併流程是dev→test→master。可是,若是多我的同時在一個分支如 test 分支上寫代碼,有的代碼要上線,有的之後才上,這樣就會致使不上線的代碼也會被合併到 master 上
php
因此,開發新功能的時候通常會在最新的master 分支切出一個分支來開發。git
最近在一個項目新增功能,因而在 master 切了一個分支進行開發,分支就叫add_feature吧。在把代碼合併到 master 分支的時候,遇到一個問題,顯示「在這個合併請求的源分支中,當前沒有任何更改」(Currently there are no changes in this merge request's source branch.)我就很奇怪,明明沒有提交合並請求過,master 怎麼會有個人代碼呢?而後我在 master 分支上git log,發現有個人提交記錄,覺得 master 分支上已經有個人代碼了。因而把合併請求關閉了。api
結果 master上線以後,我調了一下個人代碼涉及到的 api 接口,竟然404了。在 add_feature上寫好代碼後,我會把代碼合併到 test,而後部署到測試環境進行測試。我猜想有人在 直接在test 分支上開發,須要上線代碼,發現 test 分支摻雜着個人代碼,因而把個人代碼刪除,而後合併到 maseter,結果 master 裏有個人 commit,致使我沒法將 add_feature 合併到 master 分支。函數
爲簡化步驟,只建立 master、test、add_feature 分支。測試
多人合做不要直接在 test 分支上開發,若是已經開發了,也不要把別人的代碼刪掉,註釋掉就行了。
this
本人仍是新手,不瞭解這內部的原理是什麼。也有可能個人這些步驟出問題了,若是有不對的地方,但願大佬們可以指出。謝謝你們。3d
寫此文僅以記錄開發中遇到的問題。code
原文連接cdn