将存储库还原为特定提交,而不会丢失同时进行的更改

时间:2015-04-22 11:18:18

标签: git

我需要在特定提交/日期保存我的存储库状态。我不想回复,因为我不想放弃我的改变。

如何在特定提交时获取存储库?

我做了一项研究,或许以下方法可行:

git log
git clone /path/to/repository
git checkout dec5f4de67ff32fd ...

克隆和原始存储库之间是否会产生一些副作用?我的克隆存储库中是否有所有提交?如何删除克隆的存储库?只需删除文件夹?我不想要新的分支 - 我只需要在特定提交时使用该项目。

修改

现在我尝试了git checkout xxx。有效。然后我想回到git checkout master的最新更改。我收到以下错误

  

错误:将覆盖以下未跟踪的工作树文件   通过结帐:
  项目/资源/ image.png
  请移动或移除它们   在你可以切换分支之前。中止

原因是我检查了错误的分支(不是主人)。现在我删除了所有文件,并使用备份中的文件。如果我现在输入git log,他只会向我显示初始提交...所以我带着控制台移出文件夹并重新进入,现在他向我展示了最新的提交。

请注意你结账的内容。

1 个答案:

答案 0 :(得分:2)

您想要提交之前的存储库副本吗? 克隆将包含原始提交的所有提交。如果您想要删除克隆中必须使用的最新提交:

git clone /path/to/repository
git reset --hard dec5f4de67ff32fd ...

如果您只是检查提交,那么较新的提交仍然存储在存储库中,只有工作空间将更改为先前的提交。

更多细节: https://stackoverflow.com/a/4114122/4809302