Пять алиасов Git, без которых мне не прожить



Книга Пять алиасов Git, без которых мне не прожить

Я большой фанат коротких путей.

Алиасы, хаки, скрипты, автоматизация, обходные варианты… я люблю избыточную оптимизацию, поэтому неудивительно, что мне особенно нравится функциональность алиасов в Git — настолько, что это вдохновило меня ввести аналогичную функцию в проект Vagrant несколько лет назад.

Хотя мне удобно использовать Git в повседневной работе в качестве разработчика программного обеспечения, некоторые задачи более утомительны, чем другие, а некоторые просто хуже запоминаются, и именно здесь появляются алиасы. За эти годы я составил довольно обширный список алиасов, которыми пользуюсь, и вместо того, чтобы просто хранить их, я подумал, что пороюсь у себя в закромах и поделюсь своими пятью любимыми.

Примечание: если какой-либо из этих алиасов вас заинтересует, поместите соответствующие фрагменты кода в раздел [alias] вашего .gitconfig (обычно находится у вас в домашнем каталоге). Для получения более подробной информации о том, как использовать и устанавливать алиасы, я настоятельно рекомендую вам ознакомиться с документацией.

git undo

Не знаю, как часто я включал в коммит то, что не собирался, но это случается чаще, чем мне хотелось бы. Алиас git undo, вероятно, используется у меня чаще всего, так как он буквально отменяет последний коммит и дает нечто вроде второго шанса, чтобы внести изменения, исключить из индекса файлы и исправить коммит, в котором я налажал.

Алиас

undo = reset --soft HEAD~1

Демо

$ git undo

git amend

В случае, если предыдущий алиас ни на что вам не намекнул, этот недвусмысленно даст понять: лажаю я в огромных масштабах. Хотя я часто чрезмерно перегружаю коммиты, я также склонен забывать о том, что нужно добавить файл в коммит. Это часто случается, когда я делаю коммит, а затем понимаю, что забыл создать новый файл или изменить его. Алиас git amend позволяет мне добавлять любые поэтапные изменения в предыдущий коммит без необходимости обновлять сообщение о коммите.

Alias

amend = !git log -n 1 --pretty=tformat:%s%n%n%b | git commit -F - --amend

Демо

$git amend

git tree

При работе с командой, которая использует большое количество функциональных ветвей, часто бывает полезно посмотреть, как эти ветви объединяются. Алиас git tree позволяет мне видеть, что было объединено в текущую ветку и когда. Это может значительно облегчить получение более широкого представления о деятельности в рамках данного проекта.

Алиас

tree = log --graph --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'

Демо

$git tree

git review

Почти каждый проект, над которым я работаю, размещен на GitHub, поэтому алиас git review особенно удобен. Он позволяет мне отследить пулл-реквест по идентификатору, а затем я могу уже пропустить его через огонь и воду и валидировать без необходимости дополнительно вставать на уши. 

Алиас

review= "!f() { git fetch origin pull/$1/head:pr/$1 && git checkout pr/$1; }; f"

Демо

$git review

git trim

Довольно новый инструмент в моем наборе —  алиас git trim — это то, чем я пользуюсь, чтобы прибрать за собой. При запуске он получает список всех ветвей, которые были объединены в текущую ветвь, и удаляет их из локального репозитория. Это очень полезно при действии над большим количеством ветвей функций, так как вы можете очищать их по мере слияния без особых расходов.

Алиас

trim = !git branch --merged | grep -v '*' | xargs -n 1 git branch -d

Демо

$git trim
49   0  
    Ничего не найдено.

Добавить ответ:
Отменить.