从刚刚初始化的git repo暂存区域中删除所有文件

时间:2011-04-19 19:06:18

标签: git version-control

假设我刚创建了一个回购

git init

然后做了

git add .
然后我做了一个

git status

并注意到有一些我不想要的文件。我转到.git/info/并将这些文件添加到exclude文件中。然后我试着

git reset .

但得到了

fatal: Failed to resolve 'HEAD' as a valid ref.

尝试

git reset --hard

也有同样的效果。我想这是因为我还没有提交?那么如何才能在一个新的,无用的仓库中实现同样的效果呢?

由于

2 个答案:

答案 0 :(得分:16)

更新:你的问题的标题暗示你想要取消所有文件,但从你的问题文本中,听起来好像你只是想要取消其中的几个 - 你现在已经澄清了这一点,我在答案的最后添加了一些内容,提到如何取消添加刚刚添加的每个新文件。

您认为该错误是正确的,因为您尚未创建任何提交。

当您git add .为工作树中的所有内容“暂存”以进行下一次提交时。除了忽略这些文件之外,您还想要取消它们。如果您输入git status,它会提示您如何执行此操作:

 # Changes to be committed:
 #   (use "git rm --cached <file>..." to unstage)

...因此,如果要停用的文件是foo.txtbar.c,您可以执行以下操作:

git rm --cached foo.txt bar.c

然后你可以继续使用:

创建你的第一个提交
git commit

......正如您所料。


您已经在下面说明,实际上您要取消暂停您刚刚添加的每个文件 - 在这种情况下,您可以按照grzuy的说明将其修改为:

git rm -r --cached .

...并使用git add filename更有选择性地开始暂存文件。

答案 1 :(得分:5)

对于所有回购:

git rm -r --cached .