如何检查 bash 脚本中 2 个分支之间的 git 是否存在差异

oba*_*han 3 git bash

如果 git 存储库中的 2 个分支之间存在差异,我需要检查 bash 脚本。我知道可以通过 git diff 看到差异。但是我需要在if中使用它。

我怎样才能做到这一点?

例如:

git diff ......
if [ $? -eq 1 ] 
then
    echo "will do something in here"
fi
Run Code Online (Sandbox Code Playgroud)

tjm*_*772 10

(编辑:将 --exit-code 替换为 --quiet 来抑制输出)

git diff --quiet如果存在差异,将导致该命令设置类似于普通 diff 命令的退出代码。

if ! git diff --quiet <commit1> <commit2> ; then
  echo "Different"
else
  echo "Not different"
fi
Run Code Online (Sandbox Code Playgroud)

如果您想检查特定的错误代码:

git diff --quiet <commit1> <commit2>
case $? in
  0) echo "Not different" ;;
  1) echo "Different" ;;
  128) echo "Invalid commit id(s)" ;;
  *) echo "Unknown error" ;;
esac
Run Code Online (Sandbox Code Playgroud)