18 июля 2023

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

iOS-developer, ИТ-переводчица, пишу статьи и гайды.
Разберем полезные советы по работе с Git: просмотр журналов, сводки коммита и сравним команды merge и rebase.
⚙️ 3 совета по использованию Git для начинающих
Данная статья является переводом. Автор: Jacob Bennett. Ссылка на оригинал.

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

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

git log

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

        git log 
    
Результат выполнения команды <code class="inline-code">git log</code>. Данное изображение и все остальной в этой статье взяты <a href="https://levelup.gitconnected.com/use-git-like-a-senior-engineer-ef6d741c898e" target="_blank" rel="noopener noreferrer nofollow">отсюда</a>.
Результат выполнения команды 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

    
Результат выполнения команды <code class="inline-code">git log --graph --format=format:'&lt;&gt;' --all</code>
Результат выполнения команды git log --graph --format=format:'<>' --all

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

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

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

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

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

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

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

        git show <commit> --stat

    
Результат выполнения команды <code class="inline-code">git show &lt;commit&gt; --stat</code>
Результат выполнения команды git show <commit> --stat

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

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

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

        git show <commit> -- <filepath>

    
Результат выполнения команды <code class="inline-code">git show &lt;commit&gt; -- &lt;filepath&gt;</code>
Результат выполнения команды git show <commit> -- <filepath>

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

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

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

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

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

Конфликт слияния GitHub
Конфликт слияния 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) есть изменения , которые вы хотите включить в свою ветку. Вы будете использовать слияние, когда в ветке есть изменения, которые вы захотите вернуть в основную .

Источники

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

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