我最近转向使用Git。使用git-svn让我可以在不影响svn服务器的情况下保留本地分支,这非常棒。但是最新代码中存在一个bug。为了使用git bisect,我需要找到它还没有出现这个bug的时刻。但是我找不到合适的命令来回到过去的某个时间点。谢谢。
我最近转向使用Git。使用git-svn让我可以在不影响svn服务器的情况下保留本地分支,这非常棒。但是最新代码中存在一个bug。为了使用git bisect,我需要找到它还没有出现这个bug的时刻。但是我找不到合适的命令来回到过去的某个时间点。谢谢。
git checkout HEAD~1
这将使您当前的HEAD向前移动一个修订版本。
git checkout <sha>
使用此命令将当前的HEAD指向所给定的修订版本。可使用git log
或gitk
来查找所需的修订版本。
回到最新版本(相当于svn up),您需要更新分支,通常的做法是:
git checkout master
这是因为 HEAD 引用的是正在检出的版本。git checkout myfile.txt
。 - jmugit pull
似乎是您正在寻找的更合适的命令。
Right Click in project folder > TortoiseGit > Pull
更新2019:正确的命令应该是
git restore -s @~1
(例如,将文件恢复到其在HEAD父提交中的状态)
这是因为:
git checkout
处理分支和文件太混乱了。git restore
从Git 2.23(2019年8月)开始只能恢复文件。git checkout HEAD~ -- .
@
作为HEAD
的快捷符号。这似乎做到了我想要的,也就是我想你也在寻求的
git checkout *
在 Git 中,没有与 svn update 完全相等的命令。如果您删除了一个文件,即使您再次拉取它,它也会显示为已删除状态。唯一的选择是检出该文件。如果您错误地删除了多个文件并想要将它们恢复,您可以将该存储库重命名并再次克隆它。这就是我所做的。
git checkout -- <file>
。 - Bombe