如何让Git执行git commit --amend时自动保留提交者日期?
实现git commit --amend自动继承上一次提交的COMMITTER_DATE
Git本身没有内置配置项直接实现这个需求,但可以通过包装Git命令的方式,让git commit --amend自动带上指定环境变量,且无需创建自定义子命令。
具体实现方法
步骤1:创建Git包装脚本
在用户目录下创建bin目录(不存在则新建),并在其中创建名为git的脚本:
mkdir -p ~/bin touch ~/bin/git
步骤2:编写脚本内容
编辑~/bin/git,写入以下内容:
#!/bin/bash # 仅处理git commit --amend命令 if [[ "$1" == "commit" && "$2" == "--amend" ]]; then # 获取上一次提交的committer日期 COMMITTER_DATE=$(git log -1 --pretty=tformat:%cD HEAD) # 注入环境变量并执行原Git命令 GIT_COMMITTER_DATE="$COMMITTER_DATE" /usr/bin/git "$@" else # 其他命令直接调用系统原Git /usr/bin/git "$@" fi
步骤3:设置脚本权限
给脚本添加可执行权限:
chmod +x ~/bin/git
步骤4:调整PATH优先级
确保~/bin在系统Git路径之前,把以下内容添加到~/.bashrc(Bash)或~/.zshrc(Zsh)文件末尾:
export PATH="$HOME/bin:$PATH"
步骤5:生效配置
重新加载Shell配置文件,使修改生效:
# Bash用户 source ~/.bashrc # Zsh用户 source ~/.zshrc
效果验证
现在执行git commit --amend时,Git会自动用上一次提交的COMMITTER_DATE作为本次修正提交的提交者日期,无需手动添加环境变量前缀。其他Git命令的执行不受任何影响。
内容的提问来源于stack exchange,提问作者iBug
相关产品推荐
相关产品推荐

