2013-03-06 61 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