【问题标题】:Change file in project when git commit with specified messagegit commit 指定消息时更改项目中的文件
【发布时间】:2017-07-18 03:31:19
【问题描述】:

当我使用指定消息提交时,提供某些 git 挂钩更改项目中文件的最佳方法是什么? 例如,当我做$git commit -m "MODIFY" 时,我想钩子的脚本以某种方式修改我的文件。修改文件没有问题。问题是如何让 git hook 将特定消息识别为修改触发器。

【问题讨论】:

  • 你要修改的文件被git跟踪了吗?我认为只有当文件没有被git跟踪时才能或应该这样做。
  • @AleksandarDimitrov 应该被追踪...
  • 是否有临时存储提交消息的变量? pre-commit 钩子的脚本在实际提交之前执行,因此消息应该存在于某处

标签: git bash commit githooks pre-commit-hook


【解决方案1】:

您可以使用post-commit 挂钩。

https://git-scm.com/book/gr/v2/Customizing-Git-Git-Hooks

整个commit过程完成后,post-commit钩子 运行。它不带任何参数,但您可以轻松获取最后一个 通过运行 git log -1 HEAD 提交。通常,此脚本用于 通知或类似的东西。

下面是一个可以放在.git/hooks/post-commit的样本。并确保将其设为可执行文件

#!/bin/bash
echo Running post-commit hook
git log -1 --pretty=oneline HEAD | grep "MODIFY" && touch somefile.txt

您可以通过log -1 HEAD 获取最后一条提交消息并通过 grep 传递以匹配模式

【讨论】:

  • 在 hooks 文件夹中我只看到这些文件:applypatch-msg.sample pre-applypatch.sample pre-push.sample commit-msg.sample pre-commit.sample pre-rebase.sample post-update.sample prepare-commit-msg.sample update.sample
  • 创建一个名为post-commit的新文件
猜你喜欢
  • 2014-11-27
  • 2011-06-29
  • 2014-01-30
  • 2012-12-14
  • 1970-01-01
  • 2013-03-29
  • 1970-01-01
相关资源
最近更新 更多