是否有任何方法可以使用服务器端钩子(git)替换RCS关键字?

是否有任何方法可以使用服务器端钩子(git)替换RCS关键字?,git,githooks,Git,Githooks,我是githooks新手。使用githooks,是否有任何可能的方法来获取将更改推送到master中的“日期”。其中获取的“日期”需要自动更新到*.java文件中,以推送到的为准 具体而言,更改应如下所示: 推之前:`private String DATE=“$DATE$” 推送后:`private String DATE=“$DATE:2020-05-08 18:19:25$” 提前感谢您的帮助。请使用。它获取旧的提交ID、新的提交ID和在STDIN上更新的引用 如果需要推送的日期,只需在引用

我是githooks新手。使用githooks,是否有任何可能的方法来获取将更改推送到master中的“日期”。其中获取的“日期”需要自动更新到*.java文件中,以推送到的为准

具体而言,更改应如下所示:

推之前:`private String DATE=“$DATE$”

推送后:`private String DATE=“$DATE:2020-05-08 18:19:25$”

提前感谢您的帮助。

请使用。它获取旧的提交ID、新的提交ID和在STDIN上更新的引用

如果需要推送的日期,只需在引用为
refs/heads/master
时打印日期即可

#!/bin/sh

while read oval nval ref
do
  if [[ $ref == 'refs/heads/master' ]] then
    date=`date`
    echo "master was updated on $date"
  fi
done

你想知道推送的日期吗?或者最新提交的日期?@Schwern,推送的日期。比如说,文件可能在提交后几天内推送到主机。我想获得推送到主机的日期和时间。这是一个X-Y问题。您的提交过程不应编写代码。应在运行时从配置文件或其他类型的配置存储中检索此值。请在gitattributes中查找git“clean”和“smudge”筛选器。但你可能来自CVS,让我告诉你,它很慢,事实上,在极端情况下,最终很容易出错。如果你意识到一开始就不需要这个功能,你可能会更好。@Mort:我试过在gitattributes中使用git“clean”和“smudge”过滤器。将更改的提交日期推送到master中对我没有帮助。其中“涂抹”过滤器将在签出时运行。我的理解是,通过使用涂抹过滤器,我们只能获得提交日期…如果我错了,请更正我…因此我考虑查看githooks以获得选项。。