git - Git 暂存钩子
问题描述
我想自动复制特定目录中的文件,并在用户输入git commit
.
我尝试了 pre-commit 钩子做了复制的东西并添加了git add .
但是这些阶段不会影响提交本身,我收到消息,没有什么可以提交的。
当用户运行 git add 时,有没有办法运行脚本?
解决方案
从您的评论中:我感觉您正在手工做某事(结合来自两个来源的更改),这git
是专门设计的(git merge
已经有很多功能)。
例如:我不会考虑重新实现文件重命名检测或差异协调。git
与内置功能相比,它肯定会有更多的错误和更少的测试。
请考虑将该应用程序的两个版本存储在同一个 repo的两个分支git merge
中,并使用.
看起来您只是想运行一个脚本:
./update-vendor-files.sh
该脚本将使用git
,但是,如果我错了,请纠正我,我认为开发人员知道他应该在需要时运行此特定操作而不是尝试在任何情况下自动触发它并不是那么麻烦git add
或git commit
行动。
如果您想要更多git
方式来调用该脚本:
- 命名它
git-update-vendor-files
, - 把它放在你的
PATH
,
你现在可以运行:
git update-vendor-files
推荐阅读
- flutter - 如何将 UInt16 转换为 wav?
- node.js - NodeJS ReferenceError: "require is not defined" 即使我使用的是 CommonJS
- laravel - 如何在 laravel MongoDB 中使用 groupBy Month 和 Sum
- node.js - 错误 [ERR_REQUIRE_ESM]: 运行脚本时必须使用 import 加载 ES 模块
- node.js - 如何使用变量(和 node.js)在 MongoDB 中进行精确短语文本搜索
- reactjs - 如何根据反应选择中的选定值有条件地呈现数据
- sql - 计算分组内的总时间
- javascript - 调试关闭时移动设备上的空白页面
- powerbi - 按另一列过滤表
- rust - 如何在 Rust 中生成枚举选项的 vec