IDEA 中设置全局 hook 解决提交代码时 missing changeId 的问题

背景

IDEA 下载好 Git 项目,安装好 Gerrit 插件后,提交代码时无法将代码 Push 到 Git 仓库,报 missing changeId 的错误,或者说报 rejected by remote 的错误。

这是因为 IDEA 的插件在提交代码时不像 Eclipse 的插件那样可以填写 changeId ,所以丢失了 changeId。

这里有两种解决方法,第一种是下载 commit-msg 文件,放到项目中。第二种是配置全局的 commit-msg,在下载项目时,自动在项目中生成 commit-msg 文件。

commit-msg 文件下载地址:http://www.yujunyi.com/download/commit-msg

解决方法一:拷贝 commit-msg 到每个项目中

下载 commit-msg 文件,并拷贝到项目下 .git\hooks 文件夹中,再次 commit & push 即可。(如果之前报错,需要 reset 重新 commit & push)

解决方法二:设置全局 commit-msg

下载 commit-msg 文件。

任意找个位置,创建 .git_template\hooks 文件夹。我这边以 C:\Users\Administrator 位置为例,在 cmd 命令行中进入该文件夹,执行 mkdir .git_template\hooks。当然也可以手动创建文件夹。

将 commit-msg 文件拷贝到该文件夹下。

最后右击任意空白处选择 Git Bash Here 打开 Git 命令运行窗口,输入以下命令git config --global init.templatedir C:/Users/Administrator/.git_template

以后再次下载项目时,就会自动在项目下 .git\hooks 文件夹中自动生成 commit-msg 文件,可以不用每次都去手动拷贝了。