"svn update -r" 的 Git 等价命令是什么?

57

我最近转向使用Git。使用git-svn让我可以在不影响svn服务器的情况下保留本地分支,这非常棒。但是最新代码中存在一个bug。为了使用git bisect,我需要找到它还没有出现这个bug的时刻。但是我找不到合适的命令来回到过去的某个时间点。谢谢。

7个回答

63
git checkout HEAD~1

这将使您当前的HEAD向前移动一个修订版本。

git checkout <sha>

使用此命令将当前的HEAD指向所给定的修订版本。可使用git loggitk来查找所需的修订版本。


2
虽然我执行了这两个命令,但我没有看到我的文件。 这是情况。 1.) 我删除了一个文件夹。 2.) 我执行了你列出的两个命令。 3.) 文件夹仍然被删除,而不是像 SVN 更新一样被恢复。 - Danny
2
这是因为你要找的是 git checkout -- <file> - Bombe

21

回到最新版本(相当于svn up),您需要更新分支,通常的做法是:

git checkout master
这是因为 HEAD 引用的是正在检出的版本。

5
这似乎不相当于 svn up。在 SVN 中,如果我编辑了某些内容并希望清除它并返回到当前存储库版本,我只需删除该文件并执行 svn up 即可。然后,刚刚删除的文件的当前版本将从存储库中拉取。但是,在 git checkout master 中,这种情况并不会发生。它只会告诉我该文件已被删除。如何找回已删除的文件? - mutatron
4
可以通过检出特定文件来还原更改(包括本地删除的文件):git checkout myfile.txt - jmu

1
git pull

似乎是您正在寻找的更合适的命令。


0
如果您正在使用TortoiseGit,则
Right Click in project folder > TortoiseGit > Pull

0

更新2019:正确的命令应该是

git restore -s @~1

(例如,将文件恢复到其在HEAD父提交中的状态)

这是因为:


0

这似乎做到了我想要的,也就是我想你也在寻求的

git checkout *

0

在 Git 中,没有与 svn update 完全相等的命令。如果您删除了一个文件,即使您再次拉取它,它也会显示为已删除状态。唯一的选择是检出该文件。如果您错误地删除了多个文件并想要将它们恢复,您可以将该存储库重命名并再次克隆它。这就是我所做的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接