是否有 Git 命令用于在推送到 master 之前添加通知/警告

bit*_*ess 3 git

我有一个用例,其他人依赖我在他们从 master 下拉时没有启用标志,但我需要在本地处理 repo 时启用它。

我希望/希望?Git 有一种方法可以添加一个通知或警告,当请求推送到 master 时触发......作为各种“提醒”。

所以也许我的工作流程可能是这样的:

  1. 发展,发展,发展。
  2. git add -A
  3. 状态
  4. git commit -m "为...添加的功能"
  5. git结帐大师
  6. git合并那个分支
  7. git push origin master
  8. 警告“这是一条自定义消息,提醒您禁用该标志。”
  9. git push origin master
  10. --> 文件在第二次推送尝试后推送到 master

jpa*_*ugh 5

您可以在推动时使用pre-push钩子强制正确设置。

您需要做的就是编写一个脚本(用您喜欢的任何语言)来测试您是否将标志设置为正确的设置,如果没有,则失败并显示错误消息。

您还可以创建一个pre-commit钩子,当标志设置不正确时,不允许提交到某个分支(例如 master)。


但是,此策略存在一个大问题:每次使用处于不可发布状态的标志进行提交时,您都将部分工作流程编码到项目历史中。(一个类似的例子是提交由你的 IDE 生成的临时文件,然后在发布之前删除它们。它们仍然是你历史的一部分(除非你rebase),这显然是不好的。)

更好的策略是修改您的项目或工具以在存在某个文件(可能是一个名为 的空文件.development)时打开开发人员设置,并忽略该文件,以便它永远不会出现在您的历史记录中,并且您仍然只需创建该文件即可在本地获得正确的设置。这样做的难度取决于您正在使用的其他技术。例如,我还没有想出如何用cabal做到这一点。

另一种适用于所有情况但不太方便的策略是添加一个pre-commit始终拒绝开发人员设置的钩子。因此,当您在本地工作并打开开发人员设置时,您将在提交时收到错误消息。要完全提交,您必须避免添加git add --patch不可发布状态,这可能需要使用,并且绝对意味着您不能使用git commit --all.