假设我刚创建了一个回购
git init
然后做了
git add .
然后我做了一个
git status
并注意到有一些我不想要的文件。我转到.git/info/
并将这些文件添加到exclude
文件中。然后我试着
git reset .
但得到了
fatal: Failed to resolve 'HEAD' as a valid ref.
尝试
git reset --hard
也有同样的效果。我想这是因为我还没有提交?那么如何才能在一个新的,无用的仓库中实现同样的效果呢?
由于
答案 0 :(得分:16)
更新:你的问题的标题暗示你想要取消所有文件,但从你的问题文本中,听起来好像你只是想要取消其中的几个 - 你现在已经澄清了这一点,我在答案的最后添加了一些内容,提到如何取消添加刚刚添加的每个新文件。
您认为该错误是正确的,因为您尚未创建任何提交。
当您git add .
为工作树中的所有内容“暂存”以进行下一次提交时。除了忽略这些文件之外,您还想要取消它们。如果您输入git status
,它会提示您如何执行此操作:
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
...因此,如果要停用的文件是foo.txt
和bar.c
,您可以执行以下操作:
git rm --cached foo.txt bar.c
然后你可以继续使用:
创建你的第一个提交git commit
......正如您所料。
您已经在下面说明,实际上您要取消暂停您刚刚添加的每个文件 - 在这种情况下,您可以按照grzuy的说明将其修改为:
git rm -r --cached .
...并使用git add filename
更有选择性地开始暂存文件。
答案 1 :(得分:5)
对于所有回购:
git rm -r --cached .