在多人協作時,我們會把各自的分支開發的功能合併入test分支。有的分支可能有當前版本不能上的**。這時如果有人將test分支合到自己當前需要發的分支中,會將自己分支給汙染,一不注意就會影響整個系統當前版本上線;我們一般會約定test分支只可合入**,而不能將其合入其它分支。約定的有時一不注意就會出錯,因此這裡我們將通過自動化檢測防止分支誤合併,通過硬性機制控制// 檢查提交記錄是否包含name
function
checkmerge
(name)
'"`,
(err,stdout,stderr)
=>
return
resolve(!
!stdout)})
})}// 檢查當前分支是否為name
function
checkbranch
(name)
return
resolve
(stdout.
search
(name)
===0)}
)})}
module.exports=
const
=require
('./mergelint.util.js'
)async
function
main()
console.
log(
'打標籤成功')}
);})
}}main
()
const
=require
('./mergelint.util.js'
)async
function
main()
)return
true
}// 檢查是否含測試分支
const resm =
await
checkmerge
('operate_test'
)const resm2 =
await
checkmerge
('operate_dev'
)// 為開發分支
if(resm||resm2)
console.
log(
'請不要合併test和dev分支到當前分支!'
) childprocess.
exec
(`git tag -d m0.1.0`
,function()
)});
}else)}
}main
()
使用git鉤子防止合併分支
git是一款實用的版本管理工具,我們通過git init初始化乙個git倉庫,git會在當前目錄為我們生成乙個.git 目錄,用來管理我們的版本檔案資訊。在這個目錄中有乙個二級目錄.git hooks 它裡面存放了一些git執行的鉤子指令碼,在git執行的不同時期,執行不同的鉤子。我們可以通過編寫一...
Gitlab之合併分支
cd project dir 進入路徑 git fetch origin 將master遠端最新 更新到本地 git checkout b release v1.5.0 origin release v1.5.0 切換到release v1.5.0分支 git fetch origin 將relea...
忘記建分支無法轉換分支 git之切換分支出現的問題
當在其他分支,如test分支開發的時候,新增了資料夾等目錄結構。開發完成後,切換會master分支。如果出現 deletion of directory failed.should i try again?y n 此時,記得選擇n。不然,如果選擇了y,則git就會強制刪除不屬於master分支的檔案...