在特定的提交ID之前从git中提取

时间:2017-07-19 18:56:40

标签: git

我有一个可能导致问题的提交ID。在提交id之前,有什么办法可以从git中提取出来吗?

假设abc是我的提交ID,那么我想在提交ID abc之前从git中提取。

2 个答案:

答案 0 :(得分:2)

git fetch origin {commitID}:refs / remotes / origin / foo-commit

答案 1 :(得分:1)

  

然后我想在提交id abc

之前从git中提取

当您的分支机构是最新的时,您可以git checkout abc~1。要切换回来,只需git checkout branch

  

我有一个可能导致问题的提交ID。

那么,您当前的提交已被破坏,您想要追踪问题吗? 我想你也可以看看git bisect。例如:

git bisect start HEAD v1.0.0
Bisecting: x revision(s) left to test after this (roughly x step(s))

HEAD坏了; v1.0.0是您知道的最后一次提交。假设中间是10次提交。 然后Git会自动将你的HEAD分离到第5位(也就是检查提交)。然后,您可以执行一些测试,并告知git提交是好还是坏:

git bisect good/bad

继续这一点,当你把它标记为坏时,git会签出,比如第二次提交,否则是第7次等等。在某些时候,git会告诉你 hash是第一次错误提交。这是一种手动检出提交以跟踪问题的自动方法。也可以运行脚本来测试提交,例如:git bisect run ./test.sh。可以使用git bisect reset来中止平分部分。