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

git add myfile.txt

我还没跑呢git commit。我如何撤销这些修改,使这些修改不包含在承诺中?


当前回答

git rm --cached . -r

将“ un- add- add” 添加您从当前目录中添加的所有内容递归到当前目录

其他回答

运行运行中

git gui

,然后手动删除所有文件,或者选择全部文件,然后单击实施后的非阶段按钮。

对于特定文件 :

  • git 重置我的文件_ file. txt
  • git 检出我的文件. txt

对于所有添加的文件 :

  • git 重置 。
  • Git退房。

注:退出更改文件中的代码, 并移动到上次更新( 承诺) 状态 。重设重置代码不会改变,它只是重置信头。

git reset filename.txt  

将会从当前索引“ 即将被执行” 区域中删除一个名为文件名. txt 的文件, 而不更改其它内容 。

缩略git reset命令帮助您修改中转区域或中转区域以及工作树。 Git 的手工能力与您想要的完全一样,意味着有时需要取消对您所要的修改的修改git add.

你可以通过拨打电话来做到这一点git reset HEAD <file to change>。您有两种选择可以完全消除变化。git checkout HEAD <file(s) or path(s)>是一种快速的方法 来消除改变你的中转区和工作树的改变。

但是要小心这个命令, 因为它会消除你工作树上的所有变化。 Git 根本不知道这些变化, 因为他们从未被执行过。 一旦你执行这个命令, 就没有办法让这些变化回来 。

您可支配的另一个命令是git reset --hard。它同样会破坏您的工作树,任何未承诺的改变或分阶段的改变在运行后都会丢失。运行中git reset -hard HEAD做同样的事情git checkout HEAD。它只是不需要文件或工作路径。

您可以使用--softgit reset。它将存储库重新设置为您指定和分阶段进行所有这些修改的承诺。您已经进行的任何修改都不会受到影响,工作树上的修改也不会受到影响。

最终,你可以使用--mixed将工作树重置,不进行任何修改。这也将取消任何正在准备的修改。

还有一个互动模式:

git add -i

选择 选项 3 到 取消 添加文件 。 在我的情况中, 我通常要添加多个文件, 用交互模式, 您可以使用这样的数字来添加文件 。 这将除 4: 1, 1, 2, 3, 和 5 以外, 全部要用这个数字来添加文件 : 1, 2, 3 和 5

要选择一个序列, 只要类型 1-5 就可以从 1 到 5 全部取出 。

Git 中转文件