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

git add myfile.txt

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


当前回答

最直觉的解决办法之一是使用Forestree。

您可以从舞台和非舞台拖放文件或拖放文件

其他回答

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

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

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

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

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

此命令将卸载您的更改 :

git reset HEAD filename.txt

您也可以使用

git add -p 

以添加文件的部分。

要澄清: git 添加从当前工作目录向中转区域( index) 移动到中转区域( index) 的移动 。

这个过程叫做中转。 因此,最自然的指令是 进行修改( 更改过的文件) 。 显而易见的是 :

git stage

git 添加只是 Git 阶段的一种更容易到类型化的别名

可惜没有非舞台或不添加命令。 相关命令更难猜测或记住, 但显而易见:

git reset HEAD --

我们可以很容易地为此创建别名:

git config --global alias.unadd 'reset HEAD --'
git config --global alias.unstage 'reset HEAD --'

最后,我们有了新的命令:

git add file1
git stage file2
git unadd file2
git unstage file1

我个人甚至使用更短的化名:

git a # For staging
git u # For unstaging

我将使用 git 恢复 -- paged. 或 git 恢复 -- paged < filename >

您也可以使用 git rm -- ccared, 但是, git rm 命令最好用于已经跟踪的文件 。

您可以在 Git 2. 23 版本后使用此命令 :

git restore --staged <filename>

或者,你可以使用这个命令:

git reset HEAD <filename>