我试图撤销自上次提交以来的所有更改。在看完这篇文章后,我尝试了git reset -hard和git reset -hard HEAD。我回复头部现在在18c3773…但当我查看我的本地资源时,所有的文件都还在那里。我错过了什么?
当前回答
This will unstage all files you might have staged with git add: git reset This will revert all local uncommitted changes (should be executed in repo root): git checkout . You can also revert uncommitted changes only to particular file or directory: git checkout [some_dir|file.txt] Yet another way to revert all uncommitted changes (longer to type, but works from any subdirectory): git reset --hard HEAD This will remove all local untracked files, so only git tracked files remain: git clean -fdx WARNING: -x will also remove all ignored files, including ones specified by .gitignore! You may want to use -n for preview of files to be deleted.
总结一下:执行下面的命令基本上相当于从原始源代码复制一个新的git(但它不会重新下载任何东西,所以更快):
git reset
git checkout .
git clean -fdx
典型的使用是在构建脚本中,当你必须确保你的树是绝对干净的——没有任何修改或本地创建的目标文件或构建工件,并且你想让它工作得非常快,而不是每次都重新克隆整个存储库。
其他回答
对于那些到达这里搜索是否可以撤消git clean -f -d的人,通过它在eclipse中创建的文件被删除,
你也可以在UI中使用“restore from local history”为ref: restore from local history进行同样的操作
使用此选项可以在上次提交后删除不需要的更改。
git reset --hard HEAD
添加这个答案是因为之前的答案会永久删除您的更改
安全的方法
Git stash -u
解释:隐藏本地更改,包括未跟踪的更改(-u标志)。该命令保存本地修改,并恢复工作目录以匹配HEAD提交。
想稍后恢复更改吗?
Git隐藏pop
解释:该命令将对当前工作树状态的顶部重新应用更改。
想要永久删除更改?
Git藏匿点
解释:该命令将永久删除所存储的条目
链接到git存储文档
下面定义了一个可重用的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中有三个选项可以帮助撤消本地更改。
要查看在你的工作目录中所做的更改,你应该运行git status:
git status
用git stash撤销更改 要丢弃所有本地更改,但也要保存它们以供以后使用,您可以运行git stash命令:
git stash
用git签出撤消更改 要永久丢弃对文件的本地更改,您可以运行:
git checkout -- <file>
用git重置撤销更改 要永久丢弃对所有文件的所有本地更改,您可以执行:
git reset --hard
来源:https://www.w3docs.com/snippets/git/how-to-discard-unstaged-changes.html
推荐文章
- 如何查看远程标签?
- Maven命令行如何指向特定的settings.xml为单个命令?
- Git:在推送后删除提交的文件
- Git分支之间的视觉差异
- 在GitHub中编辑git提交消息
- 是否有可能' git状态'只修改文件?
- Git:如何区分两个不同的文件在不同的分支?
- 如何从远程Git存储库中提取并覆盖本地存储库中的更改?
- Github:导入上游分支到fork
- Git单次修订的日志
- Git在不改变提交时间戳的情况下进行改基
- 如何循环通过文件匹配通配符在批处理文件
- VS 2017 Git本地提交数据库。每次提交时锁定错误
- 如何在过去的一些任意提交之间注入一个提交?
- 从GitHub克隆项目后拉git子模块