检查git commit是否在当前工作树中

时间:2011-11-11 11:02:18

标签: git jenkins

我想知道是否有一个git命令来查看特定提交是否在当前工作树中。我有特定提交的shasign。我想知道这个提交是否是另一个工作树中的另一个用户提交的,或者它的提交是否比我工作树的当前HEAD更新。

我想这样做的原因是,因为我们设置了Jenkins服务器,并且定期完成构建,但我想测试最新版本以查看它是否与我的HEAD相同,或者它是否更旧提交,或者如果它是由其他人完成的提交。

1 个答案:

答案 0 :(得分:2)

我认为“在当前工作树中”你必须意味着“在HEAD的历史中”。

要执行您描述的测试,给定SHA1sum S,您可以执行以下操作:

  • 要查看S是否与HEAD相同,请将git rev-parse --verify Sgit rev-parse --verify HEAD进行比较
  • 否则,要查看它是HEAD历史记录中的提交,您可以将git merge-base S HEADgit rev-parse --verify S进行比较。如果它们相同,则SHEAD的祖先。
  • 要查看它是否是“由其他人完成”,您需要比较两个提交的作者,您可以通过比较git show -s --pretty='%an <%ae>' HEADgit show -s --pretty='%an <%ae>' S
  • 来完成