
Йоэль Зельдес

В процессе разработки каждый разработчик пишет то, что он не намерен делать, и передает на удаленный сервер, например, отлаживает печать. Со всеми нами время от времени случается: мы забываем удалить эти временные вещи, прежде чем делать…
Я решил эту несколько неудобную ситуацию, используя простой подход: к каждой строке, которую я не хочу случайно зафиксировать, я добавляю последовательность волшебных символов. xxx
. Эта последовательность может быть в любой части строки: внутри комментария как имя переменной, как имя функции, вы называете ее. Несколько примеров использования:
- отладочная печать:
print 'xxx reached this line'
. - переменная, используемая для отладки:
xxx_counter = 0
. - временная функция:
def xxx_print_debug_info():
. - ЗАДАНИЕ, которые необходимо выполнить перед совершением:
#TODO: don't forget to refactor this function xxx
.
Я реализовал это с помощью крючков Git. Хук – это механизм Git, запускающий специальные сценарии, когда происходят определенные важные действия. Я использовал крючок предварительной фиксации для проверки содержимого комита.
Просто создайте файл с названием <YOUR-REPO-FOLDER>/.git/hooks/pre-
фиксировать с таким содержанием:
#!/bin/sh
marks=xxx,aaamarksRegex=`echo "($marks)" | sed -r 's/,/|/g'`marksMessage=`echo "$marks" | sed -r 's/,/ or /g'`if git diff --staged | egrep -q "^\+.*$marksRegex"; then echo "you forgot to remove a line containing $marksMessage!" echo "you can forcefully commit using \"commit -n\"" exit 1fi
marks
содержит последовательности символов, которые запрещено фиксировать.git diff --staged
показывает изменения, которые будут внесены. Изменения передаются в регулярное выражение, которое ищет любой запрещенный знак (с помощьюegrep
).- Если обнаружена запрещенная метка, скрипт завершает работу с кодом ошибки, что приводит к неудаче комита.
Вы хотите обойти крючок? Выполнитьcommit -n
. Это может быть полезно, если вы хотите зафиксировать двоичный файл, например, изображение, которое может содержать запрещенный знак.
Какие трюки вы ввели в свой ежедневный рабочий процесс git? Поделитесь своей магией в комментариях 🙂
Этот пост изначально был опубликован на сайте www.anotherdatum.com.