簡體   English   中英

git checkout。 添加稀疏結帳排除的目錄

[英]git checkout . adds directories excluded by 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"
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
 ab 

到現在為止還挺好。 這是問題所在:

git checkout .
ls
 abc 

順便說說:

git --version
 git version 1.7.10.4 

問題為什么被排除的文件會繼續出現在我的git稀疏結賬中? 是相關的,但更老,並沒有完全描述我所看到的。

這不是設計。 Git 1.8.3中的行為發生了變化

我很確定這是設計的。 您正在積極訂購git以創建所有這些文件,因此它就是這樣做的。 返回上次提交狀態的正確命令是:

git reset --hard

這也應該考慮您的稀疏結帳設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM