【发布时间】:2015-11-19 05:01:46
【问题描述】:
我之前使用git reset 处理单个文件,但我经常发现自己必须在提交之前取消暂存多个文件。是否有取消暂存所有暂存文件的命令?我在文档 (http://git-scm.com/docs/git-reset) 上找不到它。
【问题讨论】:
标签: git version-control
我之前使用git reset 处理单个文件,但我经常发现自己必须在提交之前取消暂存多个文件。是否有取消暂存所有暂存文件的命令?我在文档 (http://git-scm.com/docs/git-reset) 上找不到它。
【问题讨论】:
标签: git version-control
试试这个:
git reset HEAD .
当你执行git status时,Git 应该真正写出要做什么
6:16:17 {proj_main} ~/git/proj_main$ git status
On branch proj_main
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: sub_proj/.project
【讨论】:
git reset --soft HEAD 无效。重置软意味着您将 HEAD 重置为另一个提交,而不是索引或工作目录。在您的情况下,您要将 HEAD 重置为 HEAD 的提交。所以没有效果。
git status 通常会显示选项,例如
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: someFile.txt
modified: someDir/someOtherFile.txt
因此,如果您想取消暂存所有文件,只需执行 git 建议的操作
git reset HEAD
编辑
从 Git 2.23 开始,您可以使用 git restore --staged。 git restore 还可以从另一个提交 (-s) 恢复工作树文件并以交互方式运行 (-p)。还有更多有趣的选项可用。请参阅git restore documentation。
【讨论】:
git restore --staged :/ 将工作树中的所有暂存文件恢复为“未暂存”状态。然后git restore :/ 丢弃未暂存的更改。请注意,使用git mv 创建的所有文件仍然存在。
我使用SourceTree 客户端。它具有 Stage 和 UnStage 所有文件的选项。您也可以将它与命令行结合使用。
【讨论】: