我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没有执行 git 承诺 。 我如何撤销此操作, 使这些更改不被包含在承诺中 ?
我使用命令错误地将文件添加到 Git :
git add myfile.txt
我还没有执行 git 承诺 。 我如何撤销此操作, 使这些更改不被包含在承诺中 ?
当前回答
git rm --cached . -r
将“ un- add- add” 添加您从当前目录中添加的所有内容递归到当前目录
其他回答
如上文所述,从中转区删除新文件(仅在出现新文件的情况下):
git rm --cached FILE
使用 rm -- -- 刻录仅用于新文件不小心添加 。
git 重置命令有助于您修改中转区或中转区和工作树。 Git 的手工能力与您想要的完全一样,意味着您有时需要取消对您用 Git 添加的修改的更改 。
您可以通过调用 git 重置 HEAD < file to change > 来做到这一点。 您有两个选项可以完全清除更改。 git checkout HEAD < file (s) 或 path(s) > 是撤销您中位区域和工作树的更改的快速方法 。
但是要小心这个命令, 因为它会消除你工作树上的所有变化。 Git 根本不知道这些变化, 因为他们从未被执行过。 一旦你执行这个命令, 就没有办法让这些变化回来 。
您可支配的另一个命令是 git 重置 -- hard 。 它同样会破坏您的工作树, 任何未承诺的更改或分阶段更改在运行后都会丢失。 正在运行 git 重置 - HEAD 和 git 检查退出 HEAD 一样。 它不需要文件或工作路径 。
您可以使用 -- 软化的 git 重置。 它重新将仓库设置为您指定的所有更改, 并分阶段进行这些更改。 您已经进行的任何更改都不会受到影响, 您的工作树上的更改也不会受到影响 。
最后, 您可以使用 -- mixed 来重置工作树而不进行任何修改 。 这也可以取消任何正在准备的修改 。
在您启动一个新工程时, 避免这个棘手问题的方法 :
为您的新工程创建主目录。 运行 git init 。 现在创建一个. gitignore 文件( 即使它是空的 ) 。 提交您的. gitignore 文件 。
Git 使得您在没有任何承诺的情况下很难重置 git 重置 。 如果您创建了一个小小的初始承诺, 仅是为了创建一个, 之后您可以按您想要的重置- A 和 git 重置多少次, 以便纠正一切 。
这种方法的另一个优点是,如果你以后遇到一连串的麻烦, 需要刷新你所有的文件, 这很容易:
检查此初始承诺 。 这将删除所有您的文件 。 然后再次检查您最近的承诺 。 这将使用您当前的行终结设置, 获取您文件的新副本 。
使用 * 命令来一次处理多个文件 :
git reset HEAD *.prj
git reset HEAD *.bmp
git reset HEAD *gdb*
等
如果您想要还原最后一个任务, 但仍要保留在任务中本地作出的更改, 请使用此命令 :
git reset HEAD~1 --mixed