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
这个文件,尽管我个人不喜欢挂钩自动暂存我不打算的文件。
我的用例:
我有一个项目,我必须添加一行代码才能在我的机器上运行。在提交和推送之前,我必须再次删除这行代码。
我经常忘记这一点,所以我想知道我是否可以编写一个可以“升起标志”的工具,这会阻止我提交或推送提交,直到我再次“删除”标志。
有没有办法创建某种锁定文件或设置一个设置,以便 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
这个文件,尽管我个人不喜欢挂钩自动暂存我不打算的文件。