Git - 以编程方式阻止提交或推送的能力

Git - programatically prevent ability to commit or push

我的用例:
我有一个项目,我必须添加一行代码才能在我的机器上运行。在提交和推送之前,我必须再次删除这行代码。
我经常忘记这一点,所以我想知道我是否可以编写一个可以“升起标志”的工具,这会阻止我提交或推送提交,直到我再次“删除”标志。
有没有办法创建某种锁定文件或设置一个设置,以便 git bash 拒绝我的 commit/push?

您可以通过在 .git/hook/pre-commit 中放置具有执行权限的文件来创建预提交挂钩。

此脚本可以检查该行是否存在,如果存在,return 非零退出代码并因此中止提交:

#!/bin/sh

if grep -q '^Line to remove$' myfile.txt; then
  echo 'You forgot to remove the line from myfile.txt'
  exit 1
fi

您可以通过将文件放置在 .git/hook/pre-push.

处在预推挂钩中类似地执行此操作

您也可以让挂钩强制删除此行,然后添加 git add 这个文件,尽管我个人不喜欢挂钩自动暂存我不打算的文件。