Статьи

Будь лучше! Изучите псевдонимы, настройки, инструменты, фон

Это редакционная статья для информационного бюллетеня SitePoint Java Channel, который мы рассылаем каждую вторую пятницу. Подпишитесь здесь!

Скорее всего, вы используете Git на работе, дома и даже на кухне. (Да, это стало настолько популярным.) И по мере того, как все больше людей используют его, есть много отличного контента, обсуждающего это. В этой статье я хочу поделиться некоторыми вещами, которые мне показались особенно интересными.

Настройте Git на свои нужды

Во-первых, каждый пост Git уполномочен самим Линусом перечислять пару удивительных псевдонимов, которые, как думает автор, просветят их читателей. Вот мой (прямо из ~.gitconfig ):

 [alias] st = status --branch --short wat = log --graph --decorate --oneline -15 cd = checkout patch = add --patch unstage = reset HEAD -- unstage-patch = reset HEAD --patch com = commit -m amend = commit --amend --no-edit follow = log --follow -p 

Я использую git st чтобы получить менее загроможденную версию статуса, и git wat чтобы увидеть красочные, древовидные и не содержащие различий результаты логов, которые помогают мне вспомнить, где я находился до перерыва. На самом деле, я использую их так часто, что у меня есть псевдоним bash, который идет git st; echo ''; git wat -5 git st; echo ''; git wat -5 git st; echo ''; git wat -5 .

Далее следует git cd , который я создал, потому что я часто меняю ветки. Закончив вносить изменения, я пытаюсь убедить мир в том, что знаю, что делаю, поэтому я проверяю изменения файлов с помощью git patch и создаю отдельные коммиты. Если что-то происходит, чего не должно было быть, я использую git unstage и, в частности, git unstage-patch для удаления — или все сразу, или, опять же, меняем изменения.

Ввод git commit -m стал слишком длинным, поэтому я сократил его до git com и, поскольку я часто забываю новые файлы ( git patch не перечисляет их), я создал git amend чтобы дополнить последний коммит последними изменениями.

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

Конечно, я не единственный, кто использует псевдонимы и дает советы. Вот несколько других:

Если вы много работаете с GitHub, вас может заинтересовать Git для проверки запросов на получение с помощью чего-то вроде git checkout pr/999вот как . И этот совет позволяет вам клонировать git clone gh:<repo> . (Кстати, в октябре GitHub случайно обнародовал данные из некоторых частных репозиториев — отчет об инциденте довольно интересен.)

Хорошим инструментом для визуализации развития репозитория Git с течением времени является Git of Theseus . С его помощью вы можете составлять графики для общего количества строк (справа) или выживаемости строк кода.

Если вам интересна статистика, например, коммиты по авторам или за месяц, или даже чтобы получить предложение для рецензента, попробуйте git quick statistics .

Также, если вы пишете много файлов gitignore, вы можете использовать gitignore.io, чтобы сделать это для вас. Тогда все, что требуется для написания .gitignore это gi intellij,eclipse,gradle > .gitignore .

Юзабилити

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

Это не только мнение одного человека. Специалисты по вычислительной технике Массачусетского технологического института Сантьяго Перес Де Россо и Дэниел Джексон опубликовали статьи на эту тему, две из которых Эдриан Коли резюмировал в своем потрясающем блоге в утренней газете :

Но Git такой, какой есть, так что делать, если у вас есть проблемы?

Используйте Git лучше

Документация

Git довольно хорошо документирован, и хороший совет по практически каждому вопросу — десять центов, если вы знаете, как его задавать. Но есть один источник, на который стоит обратить особое внимание: официальная документация под git-scm.com , которая имеет две ветви.

Первым является git-scm.com/docs , который является справочной документацией. Мягко говоря, это не лучший ресурс для начала. Давайте проверим ссылку на git tag например — описание начинается следующим образом:

Добавьте ссылку на тег в refs/tags/ , если только не указан -d / -l / -v для удаления, просмотра или проверки тегов.

Если не указан -f , именованный тег еще не должен существовать.

Если -u <keyid> одно из значений -a , -s или -u <keyid> , команда создает объект тега и требует сообщения тега. Если не -m <msg> или -F <file> , пользователь запускает редактор для ввода сообщения тега.

Да, точно, WTF ?! Но хотя это и была моя реакция, это немного несправедливо. Будучи эталоном, он должен быть точным и лаконичным, а не дидактической прогулкой по парку. Если вы ищете последнее, бесплатная книга Pro Git на git-scm.com/book — ваш друг. Эта статья о тегах начинается с:

Как и большинство VCS, Git имеет возможность помечать определенные моменты в истории как важные. Обычно люди используют эту функцию, чтобы пометить точки выпуска (v1.0 и т. Д.).

Лучше. Так что, если вы попадаете на казалось бы непонятный сайт, который действительно не поможет вам взглянуть на URL. Если он начинается с git-scm.com/docs , вы можете вместо этого перейти на git-scm.com/book и найти там свою проблему.

Или, когда вы не спешите, вы можете бросить вызов себе и увидеть, насколько вы можете понять, что это за ссылка. Поверьте мне, каждый раз, когда вы делаете это, вы возвращаетесь с немного большим знанием.

Заключительные слова

Если вам интересно узнать мнение Линуса, он дал отличную беседу в Google еще в 2007 году:

Вот и все на этой неделе — надеюсь, вы прекрасно проведете время!

так долго … Николай

PS: не забудьте подписаться . 🙂