Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取Git repository init的日期?_Git_Datetime - Fatal编程技术网

如何获取Git repository init的日期?

如何获取Git repository init的日期?,git,datetime,Git,Datetime,我可以得到git init的日期/时间吗 不是第一次 如果可能的话,我怎样才能得到它 我找这个主要是为了在不断整合的修订号。 我喜欢对版本密钥使用Git提交哈希,但这是一个iOS应用程序,并且有一些限制,我只能在版本字符串中使用数字和逗号 接下来,我尝试使用Unix时间戳(秒)作为修订号,但它太大,无法显示项目的一些有意义的信息。然后,我有了另一个想法,从当前Git存储库创建开始计算秒数 我现在的想法是 HEAD_TIMESTAMP=`git show -s --format=%ct HEAD

我可以得到git init的日期/时间吗

不是第一次

如果可能的话,我怎样才能得到它


我找这个主要是为了在不断整合的修订号。 我喜欢对版本密钥使用Git提交哈希,但这是一个iOS应用程序,并且有一些限制,我只能在版本字符串中使用数字和逗号

接下来,我尝试使用Unix时间戳(秒)作为修订号,但它太大,无法显示项目的一些有意义的信息。然后,我有了另一个想法,从当前Git存储库创建开始计算秒数

我现在的想法是

HEAD_TIMESTAMP=`git show -s --format=%ct HEAD`
INIT_TIMESTAMP=<get init date>
DELTA=`expr $HEAD_TIMESTAMP - $INIT_TIMESTAMP `
DAYS=`expr $DELTA / 86400`
SECS=`expr $DELTA % 86400`
REV=$DAYS.$SECS
HEAD\u TIMESTAMP=`git show-s--format=%ct HEAD`
初始时间戳=
DELTA=`expr$HEAD\u TIMESTAMP-$INIT\u TIMESTAMP`
天数=`expr$DELTA/86400`
SECS=`expr$DELTA%86400`
版本=$天。$秒

我认为也可以使用首次提交的日期/时间。但如果可能的话,我喜欢使用
git init的日期/时间,因为这是存储库的真实创建时间。

您可以找到
.git
目录的创建日期:
stat-c%i.git
会给你一些数字

然后运行
sudo debugfs-R'stat'/dev/sdXY
并查看
crtime:

据我所知,Git在运行
Git init
时不会记录时间戳。。。如果它曾经运行过;如果问题中的回购协议是克隆的而不是初始化的呢?但是,最好的办法可能是获取
.git/description
文件的时间戳。这是一个在git init期间创建的文件,自那以后您可能没有更改。作为持续集成的修订号,您可以连续计数,或使用git提交哈希或date plus git提交哈希。依靠几台机器的时钟和时间会在某个时候出错。您还可以计算提交的数量,但如果您构建了多个分支,这也会发生冲突。正如@Jubobs所述,
git
通常不会记录这一点。但是,作为一种不完全可靠的解决方法,在
.git
目录中有几个文件/目录(如
说明
分支
信息
挂钩
),它们可能仍然具有运行
git init
时的原始时间戳……这是不可靠的。创建
.git
文件夹的日期不一定与运行
git init
的日期相对应。考虑复制项目目录并粘贴到其他地方的情况。@ jthIL,如果iNoDE的代码> cTime/CODE >包含创建时间,这似乎是一个非常常见的误解,这可能是真的。然而,
ctime
代表“上次状态更改的时间”,除了简单的创建之外,它还可以为各种其他事件进行更新-例如更改所有者、组、链接计数(在本例中考虑添加或删除目录中的文件)、模式等。@twalberg嗯,现在至少有一种情况不太常见:-P。。。谢谢