今天遇到一個奇怪的問題:
1、后端從master拉了三個分支。分別為dev、test、和stage。
2、研發1從dev拉了分支feature1,然后commit、commit、commit……。最后request merge到dev、test和stage。成功了。
3、研發2從dev拉了分支feature2,注意,feature2和feature1是同時拉的分支。分別開發不同的任務,然后研發2也開始commit,commit,commit。本來毫無交際,但有一天研發2必須要用到和研發1用到的同一個文件,但是研發1已經修改并提前merge了。這時候研發2提交merge,報了沖突。
4、接下來研發2要解決沖突。他拉取了dev更新的代碼,里面自然包含研發1提交的東西。然后找到那個文件進行比較,然后刪除掉自己的東西,加入研發1的東西,然后提交。顯示沖突解決,可以merge。然后研發2 merge到了dev。
5、接下來,魔性的來了,研發2緊接著又修改了那個文件。把自己刪掉的那幾行代碼加了進去,然后commit,接著又merge到了dev,顯示成功。接著又分別merge到test和stage。竟然成功了。why?他們中間有什么貓膩?很奇怪。test和stage比著dev其實少了一次merge,但是結果卻是相同的。