如何从git中的暂存区域中删除一堆文件更改?

时间:2015-04-23 17:29:17

标签: git

所以,我对git相对较新,而且我遇到过几次的情况是我有一份我想要的代码副本,但无论出于何种原因,因为我刚刚完成了一个“git checkout” “在同一代码库的几个不同分支上,我最终在我的文件系统上有一些文件与我当前的HEAD中检查的文件不匹配,因此它将这些文件显示为”未提交的更改“,这是正确的。但是,我不想保留任何这些更改(它们在其他某个分支中安全)。

我能看到的唯一方法是“git checkout - ”,如“git status”消息中所述。

问题是,对于10-20个文件,我必须复制粘贴文件名10-20次,这很不方便。

有没有更好的方法来做我想做的事情?我试过“git checkout master”和类似的命令但没有成功。

4 个答案:

答案 0 :(得分:2)

如果文件“未进行提交”,那么它们就在工作空间中,而不是在暂存区域中。

如果要忘记工作区中的任何更改,可以运行git checkout .,这将(递归地)将所有未暂存的文件重新置于未修改状态。

运行git checkout .对分阶段更改(即已标记为使用git add提交的更改)不起作用。要取消暂存这些更改,您可以运行git reset HEAD <path>(其中<path>可以是单个文件,文件夹或两者的数量。)

下图显示了文件可以处于的一些状态,以及如何在这些状态之间移动文件(“index”与“staging area”相同):

Git Data Transport Commands

答案 1 :(得分:1)

git reset --mixed将从那里的所有文件中清除您的暂存区域。

Another cheatsheet(很棒的一个,点击所需的部分查看命令)

答案 2 :(得分:1)

git stash如果您想暂时保留更改 git checkout -- .不要忘记递归的最后期限。

答案 3 :(得分:0)

使用以下内容撤消任何非暂存更改。 git checkout - 。 where - 表示,接下来是/是文件名,不要将其视为命令行选项(这是为了避免文件名与选项名称重合)