Git — программно предотвращает возможность фиксации или нажатия

#git #push #commit #git-commit #git-push

#git #толкать #фиксация #git-commit #git-push

Вопрос:

Мой вариант использования:
у меня есть проект, в который я должен добавить одну строку кода, чтобы он работал на моей машине. Перед фиксацией и нажатием я должен снова удалить эту строку кода.
Я часто забываю об этом, поэтому мне было интересно, могу ли я написать инструмент, в котором я могу «поднять флаг», который не позволяет мне совершать или нажимать фиксацию, пока я снова не «удалю» флаг.
Есть ли способ создать какой-то файл блокировки или установить настройку, чтобы git bash отказывался от моей фиксации / нажатия?

Ответ №1:

Вы можете создать перехват предварительной фиксации, поместив в него файл с разрешениями на выполнение .git/hook/pre-commit .

Этот скрипт может проверить, существует ли строка, и если да, вернуть ненулевой код выхода и, таким образом, прервать фиксацию:

 #!/bin/sh

if grep -q '^Line to remove

Вы могли бы аналогичным образом сделать это в pre-push hook, поместив файл по адресу  .git/hook/pre-push  .

Вы также можете принудительно удалить эту строку и добавить  git add  этот файл, хотя лично мне не хотелось бы, чтобы хук автоматически размещал файлы, которые я не собирался.



myfile.txt; then
echo 'You forgot to remove the line from myfile.txt'
exit 1
fi
Вы могли бы аналогичным образом сделать это в pre-push hook, поместив файл по адресу .git/hook/pre-push .

Вы также можете принудительно удалить эту строку и добавить git add этот файл, хотя лично мне не хотелось бы, чтобы хук автоматически размещал файлы, которые я не собирался.