我试图撤销自上次提交以来的所有更改。在看完这篇文章后,我尝试了git reset -hard和git reset -hard HEAD。我回复头部现在在18c3773…但当我查看我的本地资源时,所有的文件都还在那里。我错过了什么?
当前回答
# Navigate to project root, `.` works too.
git restore *
git状态显示我有一些文件被更改,但我想摆脱这些并开始一个新的分支。直到今天,我一直在使用git重置方法,我喜欢用它来跳回其他特定的提交。
https://www.git-tower.com/learn/git/commands/git-restore/
其他回答
使用以下命令
git remove-changes
git clean -fdx
使用此选项可以在上次提交后删除不需要的更改。
git reset --hard HEAD
添加这个答案是因为之前的答案会永久删除您的更改
安全的方法
Git stash -u
解释:隐藏本地更改,包括未跟踪的更改(-u标志)。该命令保存本地修改,并恢复工作目录以匹配HEAD提交。
想稍后恢复更改吗?
Git隐藏pop
解释:该命令将对当前工作树状态的顶部重新应用更改。
想要永久删除更改?
Git藏匿点
解释:该命令将永久删除所存储的条目
链接到git存储文档
Git恢复[filename_path]
例如,我需要丢弃我在index.html文件中的最后更改:
git restore /usr/myPC/folder/index.html
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平分错误
- 使用.gitconfig配置diff工具
- 如何配置Mac OS X术语,使git有颜色?
- Visual Studio Code: .git文件夹/文件隐藏
- “node_modules”文件夹应该包含在git存储库中吗
- 为什么git-rebase给了我合并冲突,而我所做的只是压缩提交?
- 使iTerm以与其他操作系统相同的方式翻译“元键”
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 如何从远程分支中挑选?
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?