如何使用git撤消挂起的更改?
我是git的新手。我对TFS和SourceGear Vault等集中式CVS有丰富的经验 我在本地使用git(没有远程设备)。今天,当我试图恢复自上次提交以来所做的所有更改时,我把我的项目弄得一团糟 我的存储库存储文档、VS项目和一些其他开发工件。总共有几千个文件 如何使用git恢复到整个存储库的上一次提交(撤消挂起的更改和TFS)?如何使用git撤消挂起的更改?,git,version-control,Git,Version Control,我是git的新手。我对TFS和SourceGear Vault等集中式CVS有丰富的经验 我在本地使用git(没有远程设备)。今天,当我试图恢复自上次提交以来所做的所有更改时,我把我的项目弄得一团糟 我的存储库存储文档、VS项目和一些其他开发工件。总共有几千个文件 如何使用git恢复到整个存储库的上一次提交(撤消挂起的更改和TFS)? git reset和git checkout刚刚弄乱了我的文件,所以我不得不使用文件级备份 撤消更改是指: 还原自上次提交以来编辑的文件 添加自上次提交后删除的
git reset
和git checkout
刚刚弄乱了我的文件,所以我不得不使用文件级备份
撤消更改是指:
- 还原自上次提交以来编辑的文件
- 添加自上次提交后删除的文件
- 删除自上次提交后添加的文件
git state
或git log
做到这一点
git reset --hard HEAD
我们应该做到这一点。此命令会将所有文件重置为上次提交时的状态
如何使用git恢复到整个存储库的上一次提交(撤消挂起的更改和TFS)?git重置和git签出只是弄乱了我的文件,所以我不得不使用我的文件级备份
另一种选择是git签出
,请参阅:git签出-切换分支或恢复工作树文件。例如:git checkout--.
从当前分支签出所有文件,从而恢复其状态
是否可以在文件夹(+子文件夹)级别而不是存储库级别执行此恢复
是,git签出--path/to/folder
使用Vault,我可以标记文件夹(+子文件夹),稍后我可以返回到该标记状态。这可以用git完成吗
我只知道在存储库的基础上。但是,您可以为该特定标记签出文件夹(或提交):git checkout tags/v1.0.3--path
或git checkout commit--path
我是否可以查看文件夹中已删除的文件,并根据需要(从一些较旧的提交中)还原它们?我还没有用git state或git log做到这一点
例如,使用git log--name status。假设我在某个提交中删除了README.md,它将显示为D README.md
。假设它在commit abc123中被删除,那么abc123~1就是之前的commit(README.md仍然存在)。然后,您可以使用git show abc123~1:README.md查看删除前提交中该文件的内容。一种简单的恢复方法:git show 5235de78d28a07d2459130e7e3041b7720563b5d~1:README.md>README.md
我可以查看文件夹中已删除的文件吗
git log——name status——path/to/folder
这是我首先做的<代码>git日志然后git重置--硬2f34…
其中2f34。。。这是上次犯罪的结果。它只是为整个回购协议恢复了一些非常旧的数据。我只是需要一个文件夹。谢谢你的详细回答。