我试图撤销自上次提交以来的所有更改。在看完这篇文章后,我尝试了git reset -hard和git reset -hard HEAD。我回复头部现在在18c3773…但当我查看我的本地资源时,所有的文件都还在那里。我错过了什么?
当前回答
我要做的是
git add . (adding everything)
git stash
git stash drop
一行代码:git add。少不更事的藏匿物,少不更事的藏匿物掉落
贾斯廷指出的一个更短的版本
Git stash -u && Git stash drop
其他回答
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 add .
git stash
git stash drop
git clean -fdx
还有git stash——它可以“存储”你的本地更改,可以在以后重新应用,也可以在不再需要时删除
更多关于存储的信息
Git恢复[filename_path]
例如,我需要丢弃我在index.html文件中的最后更改:
git restore /usr/myPC/folder/index.html
另一个选项是取消未提交的更改:
git restore <file>
丢弃工作目录中的更改。
推荐文章
- Visual Studio Code无法检测已安装的Git
- 强制LF eol在git的回购和工作副本
- Git:在裸库中更改活动分支的正确方法?
- 删除git中的分支是否会将其从历史记录中删除?
- 防止在GitHub上推送到master ?
- 根据Git,谁是“我们”,谁是“他们”?
- git如何合并后樱桃采摘工作?
- Git搜索单个文件历史记录中的字符串
- Git命令显示所有(轻量级)标签创建日期
- Gitignore并没有忽视文件夹
- 什么时候用。git/info/exclude代替。gitignore来排除文件?
- 如何告诉git忽略个别行,即gitignore为特定行代码
- 如何删除所有MySQL表从命令行没有DROP数据库权限?
- “git diff——耐心”是什么意思?
- 我如何在GitHub中为其他人的代码做出贡献?