Git:在飞行中抓住哈希

时间:2012-11-26 17:40:45

标签: git github

我非常怀疑我能做到这一点,因为提交哈希是在提交时生成的,但有一种方法可以在我提交的时候动态保存提交的哈希值。

示例:
我做了一些更改并提交
提交哈希保存到文件
然后我将提交同步到Github服务器

理想情况下,我想要的是一种防弹方式,知道哪个提交版本是我正在查看的文件。我可以实现版本,但考虑到极快的开发速度(通常在几分钟时间内提交5-6次),这非常不实用。

我愿意接受其他建议。

3 个答案:

答案 0 :(得分:0)

不,您不能在提交中的文件中包含提交ID。标识提交的sha1哈希,因此将一个ID插入到文件中将导致将用于提交的哈希值发生更改。

答案 1 :(得分:0)

  

有没有一种方法可以动态保存提交的哈希值,因为我正在提交

没有。完全创建提交对象时会生成标识提交的哈希。因此,只有在完成提交,编写提交消息等之后,您才能访问提交哈希。

但是,当您在示例中编写它时,您似乎首先提交然后将提交哈希保存到文件中。如果你不想在提交本身中包含该文件(这会因为它会改变提交中的树而无效),那么这是完全可能的。

获取当前HEAD哈希的简单命令,即指向刚创建的提交的指针是:

git rev-parse HEAD
  

理想情况下,我想要的是一种防弹方式,知道哪个提交版本是我正在查看的文件。

你可能想要的是类似Subversion的$Revision: X$。但由于上述原因,这是不可能的。您可以做的是提供清洁/涂抹过滤器,在结帐时执行此类操作,但我不建议这样做。

另一种方法是对实际扩展ident blob ID的文件使用$Id$属性。虽然不是提交ID。另请参阅this question

答案 2 :(得分:0)

您可能会考虑使用Git post-commit hook,但提交哈希必须存储在单独的文件中,如上所述。