2013-03-06 108 views
3

在稀疏结帐场景中,命令git checkout .会还原应该忽略的目录。这是设计,还是Git中的潜在问题?我正在使用git checkout .放弃我对工作副本所做的任何更改 - 是否有另一个命令会执行相同的操作,而不会遇到此问题?git结帐。添加稀疏结帐排除的目录

这里有一个重复的例子:

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 
a b 

到目前为止,一切都很好。这里的问题:

git checkout . 
ls 
a b c 

顺便说一句:

git --version 
git version 1.7.10.4 

问题Why do excluded files keep reappearing in my git sparse checkout?有关,但更老,完全不是那么回事描述我米眼见。

回答

0

我很确定这是设计。您正在积极订购git来创建所有这些文件,因此它可以做到这一点。回到上次提交状态的正确命令是:

git reset --hard 

这也应该考虑到您的稀疏结帐设置。

+0

太棒了,适合我! – krlmlr 2013-03-07 09:59:56