我试图撤销自上次提交以来的所有更改。在看完这篇文章后,我尝试了git reset -hard和git reset -hard HEAD。我回复头部现在在18c3773…但当我查看我的本地资源时,所有的文件都还在那里。我错过了什么?


当前回答

下面定义了一个可重用的Git命令别名来删除任何本地更改,然后可以在将来的任何时候使用它来删除任何未提交的更改:

git config --global alias.remove-changes '!git stash push --include-untracked && git stash drop'

使用别名很简单:

git remove-changes

别名使用git stash push—include-untracked将所有更改推入存储(包括未提交的),然后使用git stash drop删除新创建的存储条目。

其他回答

如果你想“撤销”所有未提交的更改,只需运行:

git stash
git stash drop

如果您有任何未跟踪的文件(通过运行git状态检查),可以通过运行以下命令删除:

git clean -fdx

Git stash创建一个新的stash,它将成为stash@{0}。如果你想先检查一下,你可以运行git stash list来查看你的存储列表。它看起来像这样:

stash@{0}: WIP on rails-4: 66c8407 remove forem residuals
stash@{1}: WIP on master: 2b8f269 Map qualifications
stash@{2}: WIP on master: 27a7e54 Use non-dynamic finders
stash@{3}: WIP on blogit: c9bd270 some changes

每个存储都以前一个提交消息命名。

另一个选项是取消未提交的更改:

git restore <file>

丢弃工作目录中的更改。

我要做的是

git add . (adding everything)
git stash 
git stash drop

一行代码:git add。少不更事的藏匿物,少不更事的藏匿物掉落

贾斯廷指出的一个更短的版本

Git stash -u && Git stash drop

Git恢复[filename_path]

例如,我需要丢弃我在index.html文件中的最后更改:

git restore /usr/myPC/folder/index.html

我只是偶然发现了一个github库,它可以很容易地撤销git中的一些东西。它叫做ugit

只需输入ugit,它就会为您提供一个选项列表,您可以选择这些选项来撤销git命令