如何解决"git status"未显示的未分级更改

Bil*_*oor 10 git

考虑

$ git status
On branch chore/nbsp-fix-2
nothing to commit, working directory clean
$ git rebase -i master
Cannot rebase: You have unstaged changes.
Please commit or stash them.
Run Code Online (Sandbox Code Playgroud)

我如何计算出阻止git进行变基的未分阶段更改?

一些背景:有人设法在名称中添加具有不间断空格(%A0)的文件.这导致了存储库的问题.文件显示为未跟踪,git认为存储库是脏的 - 类似的问题.

我用来纠正问题的技术是在进行这些更改之前创建一个新的分支,并在这些更改之后挑选几个提交.不幸的是我现在处于这种情况.我可以想象有一些其他文件或其他遗留的问题阻止我继续前进.在错误的文件名之后挑选单个提交后,我现在处于这个位置.

我正在寻找解决这个问题的建议.什么是rebase看到这种状态看不到?

jth*_*ill 5

原来git rebase是一个shell脚本,在这个函数/usr/libexec/git-core/git-rebasegit-sh-setup,在dir中只有一个命中符号"有未分段的更改" :

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

[ ... ]
Run Code Online (Sandbox Code Playgroud)

和rebase确实调用了它.所以,回答

什么是rebase看到这种状态看不到?

你的问题,试试吧git diff-files.