所以,我对git相对较新,而且我遇到过几次的情况是我有一份我想要的代码副本,但无论出于何种原因,因为我刚刚完成了一个“git checkout” “在同一代码库的几个不同分支上,我最终在我的文件系统上有一些文件与我当前的HEAD中检查的文件不匹配,因此它将这些文件显示为”未提交的更改“,这是正确的。但是,我不想保留任何这些更改(它们在其他某个分支中安全)。
我能看到的唯一方法是“git checkout - ”,如“git status”消息中所述。
问题是,对于10-20个文件,我必须复制粘贴文件名10-20次,这很不方便。
有没有更好的方法来做我想做的事情?我试过“git checkout master”和类似的命令但没有成功。
答案 0 :(得分:2)
如果文件“未进行提交”,那么它们就在工作空间中,而不是在暂存区域中。
如果要忘记工作区中的任何更改,可以运行git checkout .
,这将(递归地)将所有未暂存的文件重新置于未修改状态。
运行git checkout .
对分阶段更改(即已标记为使用git add
提交的更改)不起作用。要取消暂存这些更改,您可以运行git reset HEAD <path>
(其中<path>
可以是单个文件,文件夹或两者的数量。)
下图显示了文件可以处于的一些状态,以及如何在这些状态之间移动文件(“index”与“staging area”相同):
答案 1 :(得分:1)
git reset --mixed
将从那里的所有文件中清除您的暂存区域。
Another cheatsheet(很棒的一个,点击所需的部分查看命令)
答案 2 :(得分:1)
git stash
如果您想暂时保留更改
git checkout -- .
不要忘记递归的最后期限。
答案 3 :(得分:0)
使用以下内容撤消任何非暂存更改。 git checkout - 。 where - 表示,接下来是/是文件名,不要将其视为命令行选项(这是为了避免文件名与选项名称重合)