Я большой фанат коротких путей.
Алиасы, хаки, скрипты, автоматизация, обходные варианты… я люблю избыточную оптимизацию, поэтому неудивительно, что мне особенно нравится функциональность алиасов в Git — настолько, что это вдохновило меня ввести аналогичную функцию в проект Vagrant несколько лет назад.
Хотя мне удобно использовать Git в повседневной работе в качестве разработчика программного обеспечения, некоторые задачи более утомительны, чем другие, а некоторые просто хуже запоминаются, и именно здесь появляются алиасы. За эти годы я составил довольно обширный список алиасов, которыми пользуюсь, и вместо того, чтобы просто хранить их, я подумал, что пороюсь у себя в закромах и поделюсь своими пятью любимыми.
Примечание: если какой-либо из этих алиасов вас заинтересует, поместите соответствующие фрагменты кода в раздел [alias]
вашего .gitconfig
(обычно находится у вас в домашнем каталоге). Для получения более подробной информации о том, как использовать и устанавливать алиасы, я настоятельно рекомендую вам ознакомиться с документацией.
git undo
Не знаю, как часто я включал в коммит то, что не собирался, но это случается чаще, чем мне хотелось бы. Алиас git undo
, вероятно, используется у меня чаще всего, так как он буквально отменяет последний коммит и дает нечто вроде второго шанса, чтобы внести изменения, исключить из индекса файлы и исправить коммит, в котором я налажал.
Алиас
undo = reset --soft HEAD~1
Демо
git amend
В случае, если предыдущий алиас ни на что вам не намекнул, этот недвусмысленно даст понять: лажаю я в огромных масштабах. Хотя я часто чрезмерно перегружаю коммиты, я также склонен забывать о том, что нужно добавить файл в коммит. Это часто случается, когда я делаю коммит, а затем понимаю, что забыл создать новый файл или изменить его. Алиас git amend
позволяет мне добавлять любые поэтапные изменения в предыдущий коммит без необходимости обновлять сообщение о коммите.
Alias
amend = !git log -n 1 --pretty=tformat:%s%n%n%b | git commit -F - --amend
Демо
git tree
При работе с командой, которая использует большое количество функциональных ветвей, часто бывает полезно посмотреть, как эти ветви объединяются. Алиас git tree позволяет мне видеть, что было объединено в текущую ветку и когда. Это может значительно облегчить получение более широкого представления о деятельности в рамках данного проекта.
Алиас
tree = log --graph --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'
Демо
git review
Почти каждый проект, над которым я работаю, размещен на GitHub, поэтому алиас git review
особенно удобен. Он позволяет мне отследить пулл-реквест по идентификатору, а затем я могу уже пропустить его через огонь и воду и валидировать без необходимости дополнительно вставать на уши.
Алиас
review= "!f() { git fetch origin pull/\/head:pr/\ && git checkout pr/\; }; f"
Демо
git trim
Довольно новый инструмент в моем наборе — алиас git trim
— это то, чем я пользуюсь, чтобы прибрать за собой. При запуске он получает список всех ветвей, которые были объединены в текущую ветвь, и удаляет их из локального репозитория. Это очень полезно при действии над большим количеством ветвей функций, так как вы можете очищать их по мере слияния без особых расходов.
Алиас
trim = !git branch --merged | grep -v '*' | xargs -n 1 git branch -d
Демо
Читайте также:
- Способы публикации библиотеки JavaScript: CDN, NPM, GitHub
- Прекращайте пользоваться Git CLI
- Использование хуков Git для улучшения процесса разработки
Перевод статьи: Zachary Flower “5 Git Aliases I Can’t Live Without”