gpt4 book ai didi

bash - git merge 以编程方式检测冲突

转载 作者:行者123 更新时间:2023-12-02 18:21:46 27 4
gpt4 key购买 nike

我需要在 CI CD 期间从一个分支 merge 到另一个分支。我正在寻找一种方法来检测 merge 后的冲突,从而停止该过程并发出警报。这就是我现在所拥有的:

#! /bin/bash 

echo 'start'

function do_merge() {
git merge auto
}

function is_merge_ok(){
local merge_response = $(do_merge)
local SUB = 'error'
if [[ "$merge_response" == "*$SUB*" ]]; then
echo 'false'
else
echo 'true'
fi
}


local was_merge = $(is_merge_ok)
if [[ "$was_merge" == "false" ]]; then
exit(1)
else
exit(0)
fi

但它没有收到错误。有办法实现吗?谢谢

最佳答案

git merge 已经有一个指示成功或失败的退出代码。

直接在 if 中使用 git merge auto :

if git merge auto; then
echo "sucess !"
else
exitcode=$?
echo "failure"
exit $exitcode
fi

或者在执行git merge auto后立即存储退出代码以供以后比较:


git merge auto
exitcode=$?

... # do something else

if [ $exitcode -eq 0 ]; then
echo "success"
else
echo "failure"
fi

您当前的脚本大致相当于:

if git merge auto > /dev/null; then
exit 0;
else
exit 1;
fi

关于bash - git merge 以编程方式检测冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70787993/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com