我错误地使用以下命令将文件添加到Git:
git add myfile.txt
我还没有运行git commit
命令。我该如何撤销这个操作,以便这些更改不会被提交?
要重置特定文件夹(包括其子文件夹)中的所有文件,您可以使用以下命令:
git reset *
git status
命令查看未提交的更改,然后手动重置它,例如:git reset 文件名
。 - Zorayr使用*
命令一次处理多个文件:
git reset HEAD *.prj
git reset HEAD *.bmp
git reset HEAD *gdb*
等等。
.*
或 .*.prj
。 - Luc*
不是一个命令,它是一个通配符。 - Dan Dascalescu只需键入git reset
,它将恢复到以前的状态,就像您从未键入过git add .
一样。请确保您已经提交了更改。
针对特定文件:
- git reset my_file.txt
- git checkout my_file.txt
针对所有添加的文件:
- git reset .
- git checkout .
注意: checkout 更改文件中的代码并移动到最后更新 (已提交) 的状态。而reset 不更改代码,只是重置头部。
git reset <file>
和 git checkout <file>
之间的区别。git reset <file>
会将指定文件的更改从暂存区中撤回,但仍然保留在工作目录中。这意味着您可以继续编辑该文件并提交更改。git checkout <file>
会将指定文件恢复为当前分支上最新提交的版本,即丢弃所有未保存的更改。因此,git reset <file>
是用于取消已暂存文件的更改,而 git checkout <file>
用于放弃对一个文件的所有未提交更改。 - Trent要撤销git add
,请使用:
git reset filename
还有交互模式:
git add -i
选择选项3来取消添加文件。在我的情况下,我经常想要添加多个文件,而使用交互模式,您可以使用类似于这样的数字来添加文件。 这将除了4号以外全部添加:1、2、3和5。
要选择一个序列,只需键入1-5以从1到5获取所有内容。
这个命令将会取消储藏您所做的更改:
git reset HEAD filename.txt
你也可以使用
git add -p
添加文件的部分。
git reset filename.txt
将会从当前索引中删除名为filename.txt的文件,也就是“即将提交”的区域,而不会改变其他任何内容。
git add -A
用于将所有文件添加到您的提交(暂存区)中。
git reset
git reset命令是'git add -A'命令的相反操作,它会移除所有已经暂存(即准备提交)的文件。
同样地,若要将特定文件加入到提交中,我们使用git add <filename>
命令。
同样地,若要取消特定文件的暂存(或重置),我们使用git reset <filename>
命令,该命令是git add命令的完全相反操作。
HEAD
或head
的答案现在可以使用@
代替HEAD
。请参见此答案(最后一节)了解为什么可以这样做。 - user456814