2017-04-02 56 views
-1

可以说我有在github上项目20个提交。 20次提交后,我觉得我的程序运行缓慢。我希望能回去测试程序何时放慢速度。我只是无法弄清楚我需要使用什么命令将本地驱动器与github中的特定提交ID进行同步。请帮忙,我知道这可能很简单。恢复到Git的壳牌较早提交

伊夫如何尝试git的结帐,但是这创造了一个新的分支或东西

git checkout <SHA HASH> 
+0

'git的结帐HEAD〜20' – 4c74356b41

+2

其实'git的结帐'是** **正是你想做的事。这不行吗? –

+0

这使得一个新的分支,以承诺为首。然后我只有选择发布到github服务器。我不想做一个临时党支部每次我需要回去的时候,看到发生了什么变化 – TobiasKnudsen

回答

0

其实你可以使用git checkout像你这样试过。只要你不使用-b选项,这不会产生一个新的分支,但给你留下一个超然HEAD(即HEAD指向一个特定的承诺,而不是一个分支),所以你想要什么。

如果您不想一个接一个地测试一个提交以查找其速度降低的点,您可能想使用git bisect,它支持完全支持您的用于有效查找某个特定提交的用途,其中发生了某些更改。这可能是引入错误的提交,或者是某些事情变得缓慢或无用的提交。它通过二进制搜索算法来支持这一点,这意味着您在项目速度缓慢的情况下进行提交,并在项目速度很快的情况下进行提交,然后Git检查它们之间的中间。然后你告诉Git这个提交是慢还是快,等等,直到Git根据你的输入告诉你它已经找到了第一个提交项目变得缓慢的提交。您通常需要花更少的时间来尝试找到提交的问题,而不是一个接一个地测试一个提交。

你的命令会是这样的git bisect start --term-old=fast --term-new=slow @ @~20,如果你知道它是缓慢的当前提交,是快20次年前的提交。然后在测试签出的代码之后,您将调用git bisect slowgit bisect fast,直到找到提交的问题。如果你能确定代码是否是慢或快编程,你甚至可以给git bisect,告诉其返回值平分是否提交的脚本是慢,快或不确定(如构建失败这么慢或快无法测量)和Git将自动找到您所提交的问题,而无需手动干预。