清空刚初始化的Git存储库暂存区中的所有文件

5

假设我刚创建了一个仓库

git init

然后执行

git add .

接下来,我进行了一次

git status

我注意到有几个文件不需要,它们位于 .git/info/ 目录下。我将这些文件添加到了 exclude 文件中。接着,我尝试执行其他操作。

git reset .

但是得到了一个

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

尝试一下:
git reset --hard

有相同的效果。我猜这是因为我还没有做出提交?那么在一个新的、没有提交记录的仓库中,如何实现相同的效果呢?

谢谢。

2个回答

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更加有选择地开始暂存文件。


如果您的假设是正确的,您能否编辑问题标题? - Matt Passell
抱歉如果我表达不清楚。我的意图是取消暂存所有内容,然后手动添加我想要的文件。 - devoured elysium

5

针对所有仓库:

git rm -r --cached .

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接