首页 > 解决方案 > Git 暂存钩子

问题描述

我想自动复制特定目录中的文件,并在用户输入git commit.

我尝试了 pre-commit 钩子做了复制的东西并添加了git add .

但是这些阶段不会影响提交本身,我收到消息,没有什么可以提交的。

当用户运行 git add 时,有没有办法运行脚本?

标签: git

解决方案


从您的评论中:我感觉您正在手工做某事(结合来自两个来源的更改),这git是专门设计的(git merge已经有很多功能)。

例如:我不会考虑重新实现文件重命名检测或差异协调。git与内置功能相比,它肯定会有更多的错误和更少的测试。

请考虑将该应用程序的两个版本存储在同一个 repo的两个分支git merge中,并使用.


看起来您只是想运行一个脚本:

./update-vendor-files.sh

该脚本将使用git,但是,如果我错了,请纠正我,我认为开发人员知道他应该在需要时运行此特定操作而不是尝试在任何情况下自动触发它并不是那么麻烦git addgit commit行动。

如果您想要更多git方式来调用该脚本:

  • 命名它git-update-vendor-files
  • 把它放在你的PATH,

你现在可以运行:

git update-vendor-files

推荐阅读