如何修改Visual Studio创建Git仓库时的默认Add project files提交信息
问题描述
我尝试修改Visual Studio中通过内置Git菜单首次创建仓库时自动生成的默认提交信息,该默认内容会自动匹配当前计算机的系统语言:
- 英文环境下默认内容为
Add project files. - 意大利语环境下默认内容为
Aggiungere i file di progetto.
相关效果参考测试仓库截图:
请问是否有方法可以一劳永逸地修改该默认提交信息?
此前我曾误以为Visual Studio创建仓库时会默认将提交推送到GitHub,无法在本地使用git amend命令修改,全网检索到的相关解决方案都需要用到git rebase命令;后续我找到了“仅创建本地仓库”的选项,此时可以使用git amend修改提交信息,但每次创建仓库都要手动修改十分耗时,因此希望找到永久修改默认值的方法。
Visual Studio本身没有在图形化设置界面提供修改该初始提交默认文案的入口,由于VS的Git相关能力全部调用本地安装的Git客户端实现,你可以通过Git全局配置实现永久生效的自定义,以下是两种可直接落地的方案:
方案1:配置Git全局初始化模板(推荐)
该方案为Git原生支持的全局配置,所有新初始化的仓库(包括VS、命令行、其他GUI客户端创建的仓库)都会自动套用自定义配置,一次配置永久生效:
- 本地新建一个空文件夹作为Git模板目录,例如命名为
git-global-template - 在该文件夹内打开命令行,执行命令初始化裸模板仓库:
git init --bare - 进入模板仓库的配置文件,写入你需要的自定义提交规则,可直接执行以下命令完成配置(将示例中的提交信息替换为你需要的内容):
# 配置默认提交身份(可和你全局Git配置保持一致) git config --file config user.name "你的常用提交用户名" git config --file config user.email "你的常用提交邮箱" # 写入自定义初始提交信息模板 echo "feat: 初始化项目" > default_commit_msg git config --file config commit.template default_commit_msg - 回到任意命令行窗口,执行全局Git配置,指定初始化时使用该模板目录:
git config --global init.templateDir "刚才创建的git-global-template文件夹的完整绝对路径"
配置完成后,后续在Visual Studio中创建新仓库时,Git会自动加载该模板配置,初始提交将直接使用你预设的文案。
方案2:配置全局Git初始化钩子自动替换默认提交
如果你不想修改默认初始化模板,也可以通过全局钩子,在检测到VS生成默认初始提交时自动替换为自定义内容:
- 本地新建一个空文件夹作为全局Git钩子目录,例如命名为
git-global-hooks - 在该文件夹内新建名为
post-init的无后缀文件,写入以下内容(将示例提交信息替换为你需要的内容,正则匹配规则可自行扩展覆盖更多系统语言的默认文案):#!/bin/sh # 检测当前仓库的最新提交是否为VS生成的默认初始提交 if git log -1 --format=%s 2>/dev/null | grep -qE "Add project files|Aggiungere i file di progetto"; then # 匹配成功则替换为自定义提交信息 git commit --amend -m "feat: 初始化项目" --no-verify fi - 如果你使用Git Bash/WSL/macOS/Linux系统,需要给该钩子文件添加可执行权限:
chmod +x post-init - 执行全局Git配置,指定全局钩子目录:
git config --global core.hooksPath "刚才创建的git-global-hooks文件夹的完整绝对路径"
补充说明
如果后续有特殊场景需要使用VS原生默认提交信息,只需要在创建仓库前临时执行git config --global --unset core.hooksPath或git config --global --unset init.templateDir取消全局配置即可,操作完成后再重新设置全局配置,不需要反复修改自定义内容。
内容的提问来源于stack exchange,提问作者4c30

