git bash脚本检查工作树



git bash有没有办法检查工作树是否干净,这不是不委托的更改或未跟踪的文件?

我正在为我的小组制作一个bash脚本,以使每日重新启动工作分支机构的过程自动化。不洁的工作树是一个普遍的问题。我可以通过执行git checkout .手动纠正问题。这将大部分时间都具有所需的结果,但并非总是如此,因此我需要能够以编程方式检查工作目录/树是否干净。

git随附的 git-sh-setup脚本包含许多有用的功能,可用于使用GIT存储库。其中包括require_clean_work_tree

require_clean_work_tree () {
    git rev-parse --verify HEAD >/dev/null || exit 1
    git update-index -q --ignore-submodules --refresh
    err=0
    if ! git diff-files --quiet --ignore-submodules
    then
        echo >&2 "Cannot $1: You have unstaged changes."
        err=1
    fi
    if ! git diff-index --cached --quiet --ignore-submodules HEAD --
    then
        if [ $err = 0 ]
        then
            echo >&2 "Cannot $1: Your index contains uncommitted changes."
        else
            echo >&2 "Additionally, your index contains uncommitted changes."
        fi
        err=1
    fi
    if [ $err = 1 ]
    then
        test -n "$2" && echo >&2 "$2"
        exit 1
    fi
}

这是可以检查git status --porcelain和/或git status -z的输出的补充。

相关内容

  • 没有找到相关文章

最新更新