You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现创建特定类型文件时自动生成创建记录并随commit同步提交?

Git commit流程自动记录新增文件的实现方案

核心实现依赖Git原生的pre-commit钩子,触发时机在提交信息编辑前,刚好可以在提交生成前完成记录追加、自动暂存的操作。

完整脚本内容

#!/bin/bash

# 自定义你要写入记录的目标文件,示例为b.txt
TARGET_FILE="b.txt"

# 获取本次提交暂存区中所有新增的文件
ADDED_FILES=$(git diff --cached --name-only --diff-filter=A)

# 遍历所有新增文件,写入记录
for FILE in $ADDED_FILES; do
    # 跳过目标文件本身的新增记录,避免循环写入
    if [ "$FILE" == "$TARGET_FILE" ]; then
        continue
    fi
    echo "$FILE was created" >> "$TARGET_FILE"
done

# 将修改后的目标文件加入暂存,跟随本次提交一起提交
git add "$TARGET_FILE"

exit 0

配置步骤

  • 将上述脚本内容保存到项目的.git/hooks/pre-commit文件中,注意不要加后缀名
  • 给脚本添加执行权限,执行命令:chmod +x .git/hooks/pre-commit
  • 测试效果:新增a.txt文件后执行git add a.txt && git commit,提交完成后查看b.txt就会自动新增a.txt was created记录

注意事项

由于.git目录不会被提交到远程仓库,如果需要团队所有成员都使用这个规则,可以把脚本存到项目可提交的目录(例如scripts/git-hooks/pre-commit),再在项目文档中说明执行复制脚本到.git/hooks目录的操作,或者配置项目的install钩子自动完成复制。
如果需要只记录特定类型的新增文件,可以在获取新增文件的命令中追加过滤规则,例如仅记录.js文件就将获取文件的行修改为:ADDED_FILES=$(git diff --cached --name-only --diff-filter=A | grep "\.js$")

内容的提问来源于stack exchange,提问作者BarYaron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:39:02