#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
этот файл, хотя лично мне не хотелось бы, чтобы хук автоматически размещал файлы, которые я не собирался.
Вы могли бы аналогичным образом сделать это в pre-push hook, поместив файл по адресу
myfile.txt; then
echo 'You forgot to remove the line from myfile.txt'
exit 1
fi
.git/hook/pre-push
.
Вы также можете принудительно удалить эту строку и добавить git add
этот файл, хотя лично мне не хотелось бы, чтобы хук автоматически размещал файлы, которые я не собирался.