git - Git:限制特定分支的范围

有没有办法强制(至少警告) 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-receiveupdate 挂钩来验证这一点。

相似文章

git - Git rebase 无效上游“开发”的问题

我有一种情况,我在3个月前从开发中创建了一个特性分支,从那时起,其他同事一直在研究其他发布到开发中的特性分支。我现在想将我的更改也集成到开发中,而不会破坏他们的代码,也不会破坏我的代码。我对此进行了研...