有没有办法强制(至少警告) git 为给定分支提交仅更新回购的一部分?
例如,假设我在一个特殊的 update-docs
分支上处理文档,并且想确保我不会错误地提交我对代码的另一部分所做的一些更改。我希望 git 拒绝提交或至少警告我在 docs
文件夹范围之外的文件有更改...
有没有办法做到这一点?
回答1
这可以使用 https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks 来实现。
pre-commit
钩子首先运行,甚至在您输入提交消息之前。它用于检查即将提交的快照、查看是否忘记了某些内容、确保测试运行或检查代码中需要检查的任何内容。从这个钩子中退出非零会中止提交,尽管您可以使用git commit --no-verify
绕过它。您可以检查代码样式(运行lint
或类似的东西)、检查尾随空格(默认挂钩正是这样做的)或检查有关新方法的适当文档。
在您的情况下,您可以查看文件列表以查看是否已添加“文档”树之外的任何内容以进行提交。
如果您正在与其他人合作并希望确保其他人不会将非文档提交推送到 update-docs
分支,那么您可以安装服务器端 pre-receive
或 update
挂钩来验证这一点。