我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没跑呢git commit
。我如何撤销这些修改,使这些修改不包含在承诺中?
我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没跑呢git commit
。我如何撤销这些修改,使这些修改不包含在承诺中?
当前回答
为了澄清:git add
将当前工作目录的更改移动到中转区(索引)。
此进程被称为此进程中 中 中。因此,最自然的命令阶段更改(已修改的文件)是显而易见的:
git stage
git add
是一个简单到类型化的别名git stage
可惜没有git unstage
英git unadd
命令。相关命令更难猜或记,但很明显:
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 reset
不过:
我发现这个小小小文章, 实际上增加了Git 命令(别名),git unadd
:见git 取消添加详细信息或... 。
简而言之
git config --global alias.unadd "reset HEAD"
现在你可以
git unadd foo.txt bar.txt
或/直接:
git reset HEAD foo.txt bar.txt
撤消撤消已经添加的文件使用 Git 很容易。 用于重设myfile.txt
已经添加的,使用:
git reset HEAD myfile.txt
解释:
启动不需要的文件后,要撤消文件,您可以完成git reset
. Head
是在本地文件中您文件的头,而最后一个参数是您文件的名称。
我为你们创建了以下图像中的步骤, 更详细地介绍了这些步骤, 包括在这些情况下可能发生的所有步骤:
正如其他人在相关问题中所指出的(见A/CN.9/WG.III/WG.II),在这里, 在这里, 在这里, 在这里, 在这里, 在这里, 和在这里现在可以了取消一个单独的文件与:
git restore --staged <file>
和取消所有文件以下列方式写成:
git restore --staged .
git restore
于2019年7月以2.23版本发布。
与--staged
旗帜, 它会恢复索引的内容( 在此询问什么 ) 。
运行时git status
与 Saged 未经发送文件一起, Git 现在建议用这个来解开 Page 文件( 而不是git reset HEAD <file>
在 v2.23 之前使用过。
也许Git已经进化了 自从你提出问题之后
$> git --version
git version 1.6.2.1
现在,你可以试试:
git reset HEAD .
这应该就是你要找的