git结帐。添加稀疏签出排除的目录

git结帐。添加稀疏签出排除的目录,git,sparse-checkout,Git,Sparse Checkout,在稀疏签出场景中,命令git checkout.将恢复应该忽略的目录。这是出于设计,还是Git中的一个潜在问题?我正在使用git checkout.放弃我对工作副本所做的任何更改--是否有其他命令可以执行相同的操作而不会出现此问题 下面是一个可复制的示例: rm -rf test git init test cd test for f in a b c; do mkdir $f touch $f/$f git add $f/$f git commit -m "added $f"

在稀疏签出场景中,命令
git checkout.
将恢复应该忽略的目录。这是出于设计,还是Git中的一个潜在问题?我正在使用
git checkout.
放弃我对工作副本所做的任何更改--是否有其他命令可以执行相同的操作而不会出现此问题

下面是一个可复制的示例:

rm -rf test
git init test
cd test
for f in a b c; do
  mkdir $f
  touch $f/$f
  git add $f/$f
  git commit -m "added $f"
done
git config core.sparsecheckout true
echo a > .git/info/sparse-checkout
echo b >> .git/info/sparse-checkout
git read-tree -m -u HEAD
ls
到目前为止,一切顺利。问题是:

git checkout .
ls
顺便说一下:

git --version

这个问题是相关的,但要老得多,不能完全描述我所看到的。

我很确定这是出于设计。您正在主动订购git来创建所有这些文件,所以它会这样做。返回上次提交状态的正确命令是:

git reset --hard

这也应该考虑到您的稀疏签出设置。

这不是出于设计。这种行为已经发生了变化

git --version
git version 1.7.10.4
git reset --hard