新建一個 autoMerge.sh
的文件,文件內容如下
# 提示用戶確認繼續執行
read -p "確認要執行腳本嗎?(輸入 'yes' 繼續): " userInput# 檢查用戶輸入是否為 "yes"
if [ "$userInput" != "yes" ]; thenecho "用戶取消了操作,腳本已終止。"exit 1
fi#進入到代碼根目錄位置
cd product-demo#切換到dev分支
git checkout dev#拉取最新代碼
git pull#切換到uat分支
git checkout uat#從dev分支合并代碼到uat
git merge --no-edit dev#檢查是否存在合并沖突
if [[ -n $(git ls-files --unmerged) ]]; then# 解決合并沖突,選擇當前分支的版本git checkout --ours .# 提交解決沖突后的代碼git add .git commit -m "Resolved merge conflict by choosing current branch's code"
fi#將最新代碼提交到uat分支
git push origin uat#結束后回到dev分支
git checkout dev
命令解釋
read -p "確認要執行腳本嗎?(輸入 'yes' 繼續): " userInput
提示用戶輸入,要求用戶確認是否繼續執行腳本。只有用戶輸入’yes’時,腳本才會繼續執行。if [ "$userInput" != "yes" ]; then
如果用戶輸入不是’yes’,執行下面的命令。echo "用戶取消了操作,腳本已終止。"
輸出用戶取消操作的信息。exit 1
終止腳本執行,并返回退出碼1。cd suitecrm-fe
改變當前工作目錄到suitecrm-fe
。git checkout dev
切換到名為"dev"的分支。git pull
從遠程倉庫拉取"dev"分支的最新代碼。git checkout uat
切換到名為"uat"的分支。git merge --no-edit dev
從"dev"分支合并更改到當前的"uat"分支,不提供編輯合并提交信息的機會。if [[ -n $(git ls-files --unmerged) ]]; then
檢查是否存在未合并的文件。如果有,說明有合并沖突。git checkout --ours .
選擇當前分支的版本來解決合并沖突。git add .
將所有文件添加到暫存區。git commit -m "Resolved merge conflict by choosing current branch's code"
提交暫存區中的更改,并附加指定的提交信息。git push origin uat
將"uat"分支的最新更改推送到遠程倉庫的"uat"分支。git checkout dev
完成所有操作后,切換回"dev"分支。