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

dev*_*ium 5 git version-control

假设我刚创建了一个回购

git init
Run Code Online (Sandbox Code Playgroud)

然后呢

git add .
Run Code Online (Sandbox Code Playgroud)

然后我做了一个

git status
Run Code Online (Sandbox Code Playgroud)

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

git reset .
Run Code Online (Sandbox Code Playgroud)

但得到了一个

fatal: Failed to resolve 'HEAD' as a valid ref.
Run Code Online (Sandbox Code Playgroud)

尝试一个

git reset --hard
Run Code Online (Sandbox Code Playgroud)

有同样的效果.我想这是因为我还没有提交?那么如何才能在一个新的,无聊的回购中取得同样的效果呢?

谢谢

Mar*_*air 16

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

您看到的错误是正确的,因为您还没有创建任何提交.

当你git add .为工作树"上演"下一步提交的所有内容时.除了忽略这些文件之外,您还想要取消它们.如果您键入git status,它会提示您如何执行此操作:

 # Changes to be committed:
 #   (use "git rm --cached <file>..." to unstage)
Run Code Online (Sandbox Code Playgroud)

...因此,如果您要unstage的文件foo.txtbar.c,你会怎么做:

git rm --cached foo.txt bar.c
Run Code Online (Sandbox Code Playgroud)

然后你可以继续并创建你的第一个提交:

git commit
Run Code Online (Sandbox Code Playgroud)

......正如你所料.


你已经在下面说明了,你实际上想要取消你刚添加的每个文件 - 在这种情况下,你可以像grzuy所说的那样修改它:

git rm -r --cached .
Run Code Online (Sandbox Code Playgroud)

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


grz*_*zuy 5

对于所有的回购:

git rm -r --cached .