我正在处理一个任务,需要将git提交日期写入其中一个被提交的文件中。我需要在以下情况下发生:
- 当分支被推送到远程repo时
- 合并到主分支时
具体而言,更改应如下所示:
提交之前:private String DATE="$DATE$"
提交后:private String DATE="$DATE: 2020-05-08 18:19:25 $"
以下是我目前尝试过的方法:
我按照 https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#Keyword-Expansion 中的指导,将.gitattributes、.gitconfig、.git_filters(包括smudge和clean过滤器)添加到我的项目中。
下面是我在项目中配置的内容:
- .gitConfig:
clean = .git_filters/dater.clean
smudge = .git_filters/dater.smudge %f
- .gitAttributes:
*.java filter=dater
- .git_filters:(在父版本库下创建了单独的文件夹)
dater.clean:
#!/usr/bin/sh
sed s/$Date$/`date +%Y%m%d`/g
dater.smudge:
#! /usr/bin/env ruby
data = STDIN.read
last_date = `git log --pretty=format:"%ad" -1`
puts data.gsub('$Date$', '$Date: ' + last_date.to_s + '$')
当我尝试使用以上配置时,它不起作用。正在寻求帮助以解决此问题,请。