我非常怀疑我能做到这一点,因为提交散列是在提交时生成的,但有没有一种方法可以在提交时动态保存提交的散列编号。
示例:
我做了几处更改并提交
提交散列将保存到文件中
然后我将提交同步到Github服务器
理想情况下,我想要的是一种防弹的方式来知道哪个提交版本是我正在查看的文件。我可以实现不同的版本,但考虑到开发的速度非常快(通常几分钟内提交5-6次),这是非常不切实际的。
我对其他建议持开放态度。
发布于 2012-11-27 01:53:47
不,您不能将提交ID包含在提交中的文件中。标识提交的sha1散列,因此在文件中插入一个ID将导致用于提交的散列发生更改。
发布于 2012-11-27 01:54:09
有没有一种方法可以在提交时动态保存提交的散列号
不是的。标识提交的散列是在完全创建提交对象时生成的。因此,只有在完成提交、写入提交消息等之后,才能访问提交散列。
然而,当您在示例中编写它时,您似乎首先提交,然后将提交散列保存到一个文件中。如果您不希望将该文件包含在提交本身中(这将不起作用,因为它会更改提交中树),那么这是完全可能的。
获取当前头的散列的简单命令如下:
git rev-parse HEAD理想情况下,我想要的是一种防弹的方式来知道我正在查看的文件是哪个提交版本。
您可能需要的是Subversion的$Revision: X$。但由于上述原因,这是不可能的。您可以做的是提供在结帐时执行此类操作的清理/污迹过滤器,但我不建议这样做。
另一种方法是对文件使用ident属性,这实际上会将$Id$扩展为blob id。但不是提交id。另请参见this question。
发布于 2012-11-27 04:45:50
您可能会考虑使用Git post-commit hook,但提交散列必须存储在一个单独的文件中,正如其他人在上面提到的那样。
https://stackoverflow.com/questions/13570199
复制相似问题