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

时间:2013-03-06 15:39:57

标签: 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"
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?是相关的,但年龄较大,并没有完全描述我所看到的内容。

2 个答案:

答案 0 :(得分:1)

这不是设计上的。行为在changed中有Git 1.8.3

答案 1 :(得分:0)

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

git reset --hard

这也应考虑您的稀疏结账设置。