从刚刚初始化git仓库暂存区中删除所有文件
问题描述:
比方说,我刚刚创建了一个回购从刚刚初始化git仓库暂存区中删除所有文件
git init
,然后做
git add .
然后我做了
git status
和注意到那里有一些我不想要的文件。我去了.git/info/
,并将这些文件添加到exclude
文件。然后我试图
git reset .
,但有一个
fatal: Failed to resolve 'HEAD' as a valid ref.
尝试一个
git reset --hard
有同样的效果。我想这是因为我还没有做出承诺?那么,如何才能在新的无版权回购中实现同样的效果?
感谢
答
更新:你的问题的标题所暗示的要unstage的所有文件,但是从你的问题的文字,听起来就好像你只是想unstage他们夫妇 - 你现在在下面阐明了这一点,并且我在回答末尾添加了一些内容,提到如何取消每个刚刚添加的新文件。
你是正确的,你看到的错误是因为你还没有创建任何提交。
当你做了git add .
那个“上演”工作树中的所有东西,为你的下一次提交。除了忽略这些文件,您还想要取消这些文件。如果键入git status
,它给你一个提示如何做到这一点:
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
...因此,如果您要unstage的文件foo.txt
和bar.c
,你会怎么做:
git rm --cached foo.txt bar.c
然后,您可以继续并创建您的第一个提交:
git commit
......如您所料。
你澄清下面,其实要unstage每一个你刚才添加的文件 - 在这种情况下,你可以像grzuy说,修改到:
git rm -r --cached .
..并通过git add filename
更有选择性地启动临时文件。
答
对于所有的回购:
git rm -r --cached .
假设你的假设是正确的,你可以编辑问题的标题? – 2011-04-19 20:38:23
对不起,如果我不清楚。我的意图是取消所有内容,然后手动添加我想要的文件。 – 2011-04-19 22:30:20
@devoured elysium:我已经更新了解决这个问题的答案。 – 2011-04-20 09:23:55