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

git add myfile.txt

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


当前回答

如果您想要还原最后一个任务, 但仍要保留在任务中本地作出的更改, 请使用此命令 :

git reset HEAD~1 --mixed

其他回答

吉特拥有每一个可以想象到的行动的指令, 但是它需要广泛的知识才能把事情弄好, 并且因为它充其量是反直觉的...

你以前做过的事:

  • 更改文件并使用git add .,或git add <file>.

你想怎样:

  • 从索引中删除文件, 但保留其版本, 并保留工作副本中未承诺的更改 :

     git reset HEAD <file>
    
  • 从 HEAD 将文件重置为最后一个状态, 撤消更改并将其从索引中删除 :

     # Think `svn revert <file>` IIRC.
     git reset HEAD <file>
     git checkout <file>
    
     # If you have a `<branch>` named like `<file>`, use:
     git checkout -- <file>
    

    之所以需要这样做,是因为git reset --hard HEAD单项文件不会工作。

  • 删除删除<file>从索引和版本中创建, 保留未翻过的文件, 更改工作副本 :

     git rm --cached <file>
    
  • 删除删除<file>从工作副本和版本完全版本中产生 :

     git rm <file>
    

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

git restore --staged <filename>

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

git reset HEAD <filename>

此命令将卸载您的更改 :

git reset HEAD filename.txt

您也可以使用

git add -p 

以添加文件的部分。

只是类型git reset它将复返,犹如你从未打过字一样。git add .自从你最后一次承诺之后,你一定要保证你以前的承诺。

如果你在初始承诺中,你不能使用git reset,只要声明“破产破产”并删除.git文件夹重新开始