⚙️ 3 совета по использованию Git для начинающих

Разберем полезные советы по работе с Git: просмотр журналов, сводки коммита и сравним команды merge и rebase.

Данная статья является переводом. Автор: Jacob Bennett. Ссылка на оригинал.

1 .Просмотр журналов Git

Журналы Git не совсем удобны, чтобы просматривать их «из коробки».

git log

Использование git log дает вам чрезвычайно детализированную информацию, и обычно не ту, что вы ищете.

git log 
Результат выполнения команды git log. Данное изображение и все остальной в этой статье взяты отсюда.

Давайте будем честны. Эти журналы никого не впечатляют. Они скучны. И они полны информации, которая вам сейчас не нужна. Есть способ получше получить общее представление о том, что происходит в вашем проекте.

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека программиста»

git log с большей наглядностью

Используя --graph и --format, мы можем быстро получить сводку о коммитах git в нашем проекте.

git log --graph --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%an%C(reset)%C(bold yellow)%d%C(reset) %C(dim white)- %s%C(reset)' --all
Результат выполнения команды git log --graph --format=format:'<>' --all

Ух ты! Вот какие красивые логи! Даже есть подобие разветвленного дерева.

Эти журналы показывают, кто над чем работал, когда были внесены изменения и как ваши изменения вписываются в общую картину.

  • --graph добавляет древовидный граф слева. Это не самый стильный график, но он помогает визуализировать изменения в ветках проекта. (Читайте документы здесь.)
  • --format позволяет настроить формат ваших журналов. Есть предустановленные форматы на выбор, или вы можете написать собственный формат, как в этом примере. (Читайте документы здесь.)
  • --all включает все ссылки, теги и ветки в журналах (включая удаленные ветки). Возможно, вам не нужно все, поэтому настройте по своему усмотрению. (Читайте документы здесь.)

Смотрите документы git-log для получения дополнительной информации о том, как вы можете повысить уровень своих журналов git.

2. Понимание конкретного коммита

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

Просмотр сводки коммита

git show <commit> --stat
Результат выполнения команды git show <commit> --stat

Используя флаг --stat, вы увидите сводку коммитов вместе с файлами, которые были изменены, и сведениями о том, как они изменились.

Просмотр конкретных изменений файла для коммита

Если вы хотите погрузиться в конкретные изменения строк в конкретном файле, используйте git show с путем к файлу.

git show <commit> -- <filepath>
Результат выполнения команды git show <commit> -- <filepath>

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

Смотрите документы git-show для получения дополнительной информации о том, как вы можете повысить уровень своего понимания коммитов git.

3. Внесение изменений

Вы создали ветку проекта, внесли некоторые изменения в свою ветку и готовы объединить эти изменения обратно в main. Поскольку вы разветвились, другой инженер внес изменения в те же файлы. 😱

Если вы используете такой сервис, как GitHub, ваш PR сообщит вам, есть ли у вас конфликты слияния.

Конфликт слияния GitHub

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

Чтобы начать решать эту проблему локально, вы обычно выбираете один из двух путей: merge или rebase.

git merge vs git rebase

Когда в main есть изменения, которые вы хотите включить в свою ветку, вы можете либо объединить (merge) изменения, либо перебазировать (rebase) ветку из другой точки.

merge берет изменения из одной ветки и объединяет их с другой веткой в одном коммите с merge.

git merge origin/main your-branch

rebase корректирует точку, в которой ветвь фактически разветвляется, т. е. перемещает ветвь в новую начальную точку от базовой ветви.

git rebase origin/main your-branch

Как правило, вы будете использовать rebase, когда в восходящей ветке (например, main) есть изменения , которые вы хотите включить в свою ветку. Вы будете использовать слияние, когда в ветке есть изменения, которые вы захотите вернуть в основную .

Источники

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

Библиотека программиста
18 октября 2017

Шпаргалка по Git, в которой представлены основные команды

Git сегодня - это очень популярная система контроля версий. Поэтому шпаргал...
admin
21 июня 2017

Про Git, Github и Gitflow простыми словами

Не самое исчерпывающее, но точно вполне доходчивое руководство по Git, Gith...
admin
23 февраля 2017

Git за полчаса: руководство для начинающих

В последние годы популярность git демонстрирует взрывной рост. Эта система ...