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

git add myfile.txt

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


当前回答

git reset filename.txt

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

其他回答

键入 :

git status

Git会告诉你什么是舞台,等等, 包括关于如何解除舞台的指示:

use "git reset HEAD <file>..." to unstage

我发现吉特做的相当不错 裸体我做正确的事情 在这样的情况下。

注:最近Git版本(1.8.4.x)更改了此电文:

(use "git rm --cached <file>..." to unstage)

如果您在初始承诺中且无法使用 Git 重设, 请声明“ 破产” 并删除. git 文件夹并重新开始

git 添加我的文件. txt # 这将将您的文件添加到待发列表中

与这个命令完全相反的是,

git reset HEAD myfile.txt  # This will undo it.

因此,您将处于上一个状态。指定的状态将再次出现在未跟踪的列表中(先前的状态)。

它会用指定的文件重置你的头。 所以, 如果您的头没有它意味着, 它只会重置它 。

请注意,如果您没有指定修改,则必须包含一个分隔符。例如,我的控制台:

git reset <path_to_file>
fatal: ambiguous argument '<path_to_file>': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions

git reset -- <path_to_file>
Unstaged changes after reset:
M    <path_to_file>

(1.7.5.4版总版)

取消对未承诺更改的修改的 git 添加 :

git reset <file>

这将将文件从当前索引( “ 即将被承诺” 列表) 中删除, 而不更改其它内容 。


取消所有文件的所有更改 :

git reset

在旧版本的 Git 中, 上述命令分别相当于 git 重置 HEAD < file > 和 git 重置 HEAD, 如果 HEAD 未定义( 因为您尚未在仓库中做出任何承诺) 或含糊不清( 因为您创建了一个名为 HEAD 的分支, 这是您不应该做的蠢事 ) , 则上述命令将失败。 但是, 在 Git 1.8. 2 中, 这被更改了 。 因此, 在现代版本的 Git 中, 您可以在第一次承诺之前使用上面的命令 :

当您在历史中没有任何承诺时, “ 将重置” (没有选项或参数) 用于错误退出, 但它现在给了您一个空索引( 匹配不存在的重置, 您甚至没有在 ) 。

文献资料:Git重置