协慌网

登录 贡献 社区

如何在提交前撤消'git add'?

1
88250
贡献值 285
贡献次数 1

我不小心把不需要提交的文件给提交了:

git add myfile.txt

我还没有运行 git commit。有没有办法撤消 git add,让文件不要包含在提交内?

答案

1
88250
贡献值 586
贡献次数 1

你可以在提交之前撤消git add的,这样做就可以了:

git reset <file>

这将从当前索引(“提交” 列表)中删除它而不更改任何其他内容。

使用

git reset

不指定文件名的话会撤销所有变更,如果文件太多时可以这么做。

在旧版本的 Git 中,上面的命令分别等同于 git reset HEAD <file>git reset HEAD ,如果未指定 HEAD(比如没有任何变更)或者 HEAD 模棱两可(你创建了名为 HEAD 的分支)会导致执行失败。不过在 Git 1.8.2 中已经改了 ,新版 Git 中你可以在第一次提交之前(没有任何变更前)就使用上面的命令:

之前当你在没有任何提交时使用 “git reset”(没有选项或参数)会报错,目前不会报错了,并会为你创建一个空索引用来匹配不存在的提交。