Исправление новых строк в mac/windows с помощью git pre-commit hook?
В нашем офисе мы работаем в команде около 10 разработчиков. У большинства из них есть компьютеры Mac. Недавно я понял, когда я проверяю различия в моей работе (после изменения только одной строки кода), меняется почти каждая строка, но git diff
показывает, что вы измените точно так же, как оригинал. После некоторых исследований выяснилось, что это новая линия. Прежде чем я что-то сделаю, это '\r\n' (CR+LF, 0x0D0A) и после моего изменения все новые строки, не связанные с Unix (\r\n), заменяются на Unix одну (\n).
Я понимаю, что могу попросить своих коллег изменить их настройки IDE, но я понимаю, что могу просто подготовить некоторый скрипт, который нужно запускать каждый раз, когда они делают коммит.
Как я могу запустить bash-скрипт перед git commit? Как можно использовать git pre-commit hook?
1 ответ
Все объясняется на https://help.github.com/articles/dealing-with-line-endings и здесь http://git-scm.com/docs/gitattributes
Для машин Linux/Mac используйте
git config --global core.autocrlf input
Для Windows-машин используйте
git config --global core.autocrlf true
с этими настройками git конвертирует все \r\n
окончания строки до \n
перед каждым коммитом.