我使用命令错误地将文件添加到 Git :

git add myfile.txt

我还没有执行 git 承诺 。 我如何撤销此操作, 使这些更改不被包含在承诺中 ?


当前回答

只要键入 git 重置, 它就会返回, 并且它就像您自上次承诺以来从未键入过 git 添加 。 请确认您以前已经承诺过 。

其他回答

问题未明确提出。 原因是Git添加有两个含义:

将新文件添加到中转区, 然后用 git rm -- checked 文件撤消。 向中转区添加一个修改过的文件, 然后用 git 重置 HEAD 文件撤消 。

如果有疑问,使用

git reset HEAD file

因为它在两种情况下都做了预期的事

警告: 如果您在已修改的文件上做了 git rm -- checked 文件( 之前在仓库中存在过的文件) , 文件将会在 git 承诺时被删除 ! 它将仍然存在于您的文件系统中, 但是如果有其他人拉动您的执行, 文件将会被从工作树上删除 。

git status 会告诉您文件是新文件还是已修改 :

On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   my_new_file.txt
    modified:   my_modified_file.txt
git add -A

用于将所有文件添加到您的承诺( 阶段) 。

git reset

是“ git 添加 - A” 命令的对面。它会删除所有要执行的分阶段文件( 手段已准备就绪 ) 。

类似地,要添加一个特定文件来承诺我们使用 Git 添加 < filename> 的方式相同, 在 unstage( 或重置) 上添加一个我们使用 git 添加的具体文件, 我们使用 git 重置 < filename > 。

git 重置与 git 添加完全相反 。

运行运行中

git gui

,然后手动删除所有文件,或者选择全部文件,然后从执行按钮中单击非阶段。

git reset filename.txt

将会从当前索引中删除名为文件名文件名. txt 的文件( 也称为“ 存储区域 ” , 即保存“ 即将执行” 的更改 ) , 而不更改其他任何更改( 工作目录没有被覆盖 ) 。

假设我创造了一个新的文件, 新的File. txt :

假设我无意中添加文件, git 添加新的File. txt :

现在我要撤销此添加, 在承诺前, git 重置新文件。 txt :