2014-01-20 2 views
0

Я читал и пытался выяснить, как заставить это работать. Я хочу добавить имя ветки в сообщение фиксации, чтобы я мог просто использовать git commit -m "message" и получить фиксацию с именем branch message. Самое близкое, что я получил, это использовать следующий код в .git/hooks/commit-msg, но я получаю sed: 1: ".git/COMMIT_EDITMSG": invalid command code . с помощью OSX 10.8.5.Предполагаемое название ветки для git commit

Я читал, что это имеет какое-то отношение к OSX sed с разными поведением, но я не могу найти решение, которое будет работать. Я, вероятно, просто не знаю достаточно о OSX/Linux.

ticket=$(git symbolic-ref HEAD | awk -F'/' '{print $3}') 
if [ -n "$ticket" ]; then 
    sed -i "1i $ticket " $1 
fi 

ответ

2

Да, ОС/Х отличается. Я тестировал это, и он работает нормально, но, возможно, у вас есть некоторые дополнительные мелкие хитрости, с которыми вам приходится иметь дело. Обратите внимание, что для флага -i в OS X требуется расширение имени файла, чтобы сохранить файл резервной копии, и не допустить, чтобы sed настаивал на том, что текст, используемый для добавления с помощью 1i, должен быть экранирован с \ рядом с другой строкой, вместо этого я использовал 1с.

ticket=$(git symbolic-ref HEAD | awk -F'/' '{print $3}') 
if [ -n "$ticket" ]; then 
    sed -i '.bak' "1s/^/$ticket /" $1 
fi 
+0

YAY it works !!!! нет необходимости в настройках. благодаря :) –

Смежные вопросы