考虑
$ 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.
如何计算阻止git进行变基的未分级更改?
一些背景:有人设法在名称中添加具有不间断空格(%A0)的文件。这导致了存储库的问题。文件显示为未跟踪,git认为存储库是脏的 - 类似的问题。
我用来纠正问题的技术是在进行这些更改之前创建一个新分支,并在这些更改之后挑选几个提交。不幸的是我现在处于这种情况。我可以想象有一些其他文件或其他遗留的问题阻止我继续前进。在错误的文件名之后挑选单个提交后,我现在处于这个位置。
我正在寻找解决此问题的建议。什么是rebase看到这种状态看不到?
答案 0 :(得分:5)
原来git rebase
是/usr/libexec/git-core/git-rebase
中的一个shell脚本,对于"有未分阶段的更改"在该函数中,在git-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
[ ... ]
并且rebase会调用它。所以,回答
什么是看到状态看不到的rebase?
您的问题,请尝试git diff-files
。