Сегодня пересмотрел свои некоторые действия при работе с проектом и пришел к некоторым интересным вещам, а так-же подчеркнул для себя несколько важных методик, с которыми сейчас буду с вами делится.
Ну вопервых, правило №1 –
Сделал фичу - закомичу
. Странно, но я как-то этот момент все время упускаю, и после недавней практики когда мне нужно было использовать замечательную фишу гита cherry-pick для разрешения одной проблемы, я понял что теперь все изменится. Так же главное что бы коментарий к комиту нес важную информацию, где у многих возникают проблемы на данном этапе, этого стоит избегать.Если фича разрабатывается долгий период времени в отдельной ветке – почаще стягивайте себе мастер. Это можно сделать либо простым pull:
git pull origin master
либо mergegit merge origin/master
Для мержа фичи в мастер используйте
git merge --no-ff featureBranch
Флаг--no-ff
cоздает merge-коммит, даже если технически этого можно избежать. Merge-коммиты очень полезны, так как содержат важную информацию:- коммиты, относящиеся к этой фиче, остаются сгруппированными
- когда и кем было выполнено слияние
- откуда пришли изменения (в нашем случае из ветки «featureBranch»)
Для соблюдения порядка и наведения чистоты незабываем делать следующие вещи:
- Перед каждым пушем делайте:
git rebase -i @{u}
- Комманда переписывает только локальные коммиты, которые вы собираетесь запушить, хотя rebase’ом так же не стоит увлекатся
- Удаляйте не нужные ветки
- Важно иметь схему именований новых веток. Как вариант использовать уникальные идентификаторы из баг-трекера, и делать что-то типа
feature-777
илиhotfix-123
. Одна задача – одна ветка. git pull --rebase
вместо простогоgit pull
- Перед каждым пушем делайте:
Очень важное правило: чем меньше вы используете “полезных программ” для работы с гитом – тем меньше у вас проблем. Ну и все таки, вам нужно то всего пару команд запомнить, стоит ли для этого ставить какой-то софт?
Так-же важно понимать, что используя гит в консоли – ты начинаешь понимать внутренюю кухню, как все просиходит, что в будущем очень помагает с решениями достаточно сложных задач при работе в команде.
И последнее: Маленький мальчик пушил в мастер и помер.