为何该Bash脚本能识别git diff对比相同提交的场景?
问题解答
- Bash的
if语句判断逻辑只看命令的退出码,不管命令有没有输出:只要退出码是0(执行成功)就进入then分支,非0才进入else分支。 git diff commit1 commit1执行后返回的退出码是0(因为没有差异,命令执行成功),所以if output=$(git diff commit1 commit1 2>&1);必然会进入then分支。- 脚本识别相同提交的核心逻辑是:在
then分支内检查捕获到的output变量内容——如果output为空,就说明两个提交没有差异(即完全相同),此时显式输出“两个提交相同”;如果output不为空,就直接输出正常的diff对比结果。
内容的提问来源于stack exchange,提问作者athos
相关产品推荐
相关产品推荐

