将文件还原到特定的提交,而不会影响本地存储库git

时间:2014-01-04 02:30:04

标签: git svn version-control local

这就是我正在做的事情:

git init         // initialize repository
git add foo.bar  // adds foo.bar to the repository
git commit -m "commit message"  // commits the added files
git status  // status of repository
git log     // commit log

如何在不影响存储库的情况下将文件还原到特定的提交? 简单的用例场景:您希望测试程序如何使用较旧的版本,但保留在repo中以后的提交。

提交id是sha键吗?没有像svn这样的数字?

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式重置上次提交:git reset HEAD~1

是的,git使用SHA1哈希作为提交ID。

答案 1 :(得分:1)

  • 您使用git commit添加新提交。
  • 您使用git log列出所有提交(这也将显示提交的SHA1 ID)
  • 您使用git reset --hard <SHA1>将分支重置为给定的SHA1 ID
  • 您可以使用git checkout <SHA1>查看旧提交,而无需更改分支。

Git有很大的帮助。例如,您可以使用git help reset获取有关git reset

的详细信息

使用gitk --allgit log --graph --decorate --all可以更好地了解当前情况。