«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Вы действительно знаете Git?

Вы действительно знаете Git?

Опубликовано 7 ноября 2024 г.
Просматривать:577

Do you really know Git?

Изображения в этом блоге взяты из книги «Pro Git» Скотта Чакона и Бена Штрауба

В этом блоге вы сможете прочитать множество интересных фактов о некоторых повседневных функциях Git, которые вы используете в программировании!

Разработчикам легко слепо использовать инструменты и не знать, как они работают «под капотом». Хотя подобные абстракции и к лучшему, иногда знание того, как все работает, может стать решающим фактором между опытным программистом и любителем.

Давайте углубимся в несколько интересных фактов!


1 — Краткий статус

Если вы уже давно используете Git, вам следует знать о статусе git. Однако знаете ли вы, что есть возможность получить более читаемый и минимальный вывод статуса?

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

$ git status -s
 M README
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
?? LICENSE.txt

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

Давайте интерпретируем вывод выше:

  • "М" - изменено, но не поставлено
  • "ММ" - постановка, а затем снова модификация. Таким образом, для следующего коммита требуется дополнительный этап.
  • "A " — новый файл был создан и размещен
  • "М" - постановка
  • "??" - новый файл был создан, но не был проиндексирован (не отслежен)

2 – Пропуск плацдарма

Что, если вы хотите разместить свои отслеживаемые файлы и зафиксировать их все с помощью одной команды?

Вы можете сделать это, используя git commit -a -m "message".

Обратите внимание, что неотслеживаемые файлы (вновь созданные файлы), к сожалению, не будут проиндексированы с помощью этой волшебной команды.


3. Просмотр истории коммитов

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

Существуют различные параметры, позволяющие настроить вывод. Давайте рассмотрим несколько полезных:

  • -{number} ограничивает количество отображаемых записей журнала (например, git log -2 показывает две последние записи)
  • --stat показывает сокращенную статистику, например количество файлов или количество вставок/удалений для каждого коммита
  • --pretty=oneline печатает каждый коммит в одной строке
  • --graph добавляет график ASCII, показывающий историю ветвей и слияний

Глава 4. Отмена действий с помощью Git Restore

Если вы хотите удалить файл, используйте git reset HEAD . Если вы хотите отменить изменение измененного файла, используйте git checkout -- {file}.

Теперь есть более простой способ сделать и то, и другое! В Git версии 2.23.0 представлено git restre, которое предоставляет возможность 2-в-1 как удалять, так и не изменять файлы.

  • git restre {file} — отменить изменение измененного файла
  • git restre --staged {file} — удалить проиндексированный файл

5. Git Fetch против Git Pull

Скорее всего, вы хотя бы раз использовали git pull в качестве программиста. Кроме того, вы, скорее всего, слышали о git fetch, но никогда не испытывали необходимости его использовать. Что ж, давайте поговорим о том, что он на самом деле делает и чем он отличается от git pull.

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

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

На данный момент в вашем локальном репозитории есть данные, но они еще не объединены с рабочим каталогом, чтобы вы могли работать с последними изменениями. Следующим шагом в процессе извлечения является слияние с вашей веткой, чтобы последние изменения находились в вашем рабочем каталоге.

Таким образом, при извлечении извлекаются и объединяются все данные одновременно, а при извлечении выполняется только первый шаг.


6 — Псевдонимы Git

Что, если я скажу вам, что есть способ сделать ваши команды git настраиваемыми? Через git config вы можете!

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

$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status

Теперь вместо ввода git commit вам просто нужно ввести git ci.

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

$ git config --global alias.unstage 'reset HEAD --'
# the double dash serves as an option separator. 
# It tells Git to treat anything after it as a filename

Приведенная выше команда эквивалентна следующим командам:

  • git unstage fileA
  • git сброс HEAD -- fileA

Также часто добавляют команду last, чтобы увидеть ваш последний коммит:

$ git config --global alias.last 'log -1 HEAD'

Вот и все об этом блоге! Надеюсь, вы узнали несколько изящных приемов для своего следующего проекта с Git, которые улучшат качество вашего рабочего процесса. Спасибо за прочтение!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/jihoonj/do-you-really-know-git-456d?1. Если обнаружено какое-либо нарушение прав, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3