我有一个用例,其他人依赖我从主服务器上下载时没有启用标志,但我需要在本地处理repo时启用它。
我希望/希望? Git有办法添加一个通知或警告,当请求推送到主控时触发......作为各种“提醒”。
所以也许我的工作流程看起来像这样:
答案 0 :(得分:4)
使用pre-push
hook推送时,可以强制设置正确的设置。
您需要做的就是编写一个脚本(使用您喜欢的任何语言)来测试您是否将标志设置为正确的设置,如果没有,则失败并显示错误消息。
当标记设置不正确时,您还可以创建一个pre-commit
挂钩,禁止向某个分支(例如master)提交。
但是,此策略存在一个大问题:每次在不可呈现状态下提交标志时,您都会将工作流的一部分编码到项目的历史记录中。 (一个类似的例子是提交由IDE生成的临时文件,然后在发布之前删除它们。它们仍然是历史记录的一部分(除非你rebase
),这显然是坏的。)
更好的策略是修改您的项目或工具,以便在存在某个文件时打开开发人员设置(可能是一个名为.development
的空文件),并忽略该文件,以便它永远不会显示在您的历史记录中,您仍然可以通过创建该文件在本地获得正确的设置。这样做有多困难取决于您正在使用的其他技术。我还没有弄清楚如何使用cabal来做到这一点。
另一种在每种情况下都会起作用但不太方便的策略是添加pre-commit
钩子,它总是拒绝开发者设置。因此,当您在开启开发人员设置的情况下在本地工作时,您在提交时会收到错误消息。要提交,您必须避免添加不可撤消的状态,这可能需要使用git add --patch
,这绝对意味着您无法使用git commit --all
。