Команды Git, о которых вам никто не расскажет 2023

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

@data_analysis_ml – наука о данных в телеграмме.

Команды Git, о которых вам никто не расскажет 2023
Git

git show

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

Допустим, вы хотите просмотреть подробную информацию о последнем коммите в вашем репозитории. Для этого вы можете использовать следующую команду:

git show HEAD

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

Если вы хотите просмотреть конкретный коммит по его хэшу, вы можете использовать следующую команду:

git show <commit hash>

Если вы хотите просмотреть разницу между текущей и конкретной версией, вы можете использовать следующую команду:

git show <commit hash> -- <file name>

Вы также можете использовать параметр отображения изменений, внесённых в коммит:

git show -p <commit hash>

Чтобы показать статистику изменений контрольной точки, добавьте -stat в команду:

git show -stat <commit hash>

git blame

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

Например, чтобы просмотреть информацию об ошибке для файла с именем main.js, вы можете запустить следующую команду:

git blame main.js

Она покажет информацию об ответственном за каждую строку кода в файле с самым последним изменением внизу.

Результат будет выглядеть примерно так:

cb7f1d (John Doe 2022–01–01) 1 function main() {
cb7f1d (John Doe 2022–01–01) 2     console.log(“Hello, world!”);
cb7f1d (Jane Doe 2022–01–02) 3 };

Этот пример показывает, что John Doe – это тот, кто изменил строку 1 и строку 2 2022-01-01, а Jane Doe – это тот, кто изменил строку 3 2022-01-02.

Вы также можете использовать параметр -L, чтобы указать диапазон строк, для которых будет отображаться информация об исправлениях. Например:

git blame -L 2,4 main.js

Эта строка покажет информацию о возможных исправлениях для строк 2, 3 и 4.

Ещё вы можете использовать опцию -C, чтобы отобразить информацию об изменении для конкретного коммита, например:

git blame -C cb7f1d main.js

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

git archive

Команда позволит вам создать архивный файл (например, zip или tar-файл) определённого момента в истории репозитория Git. Архивный файл будет содержать все файлы в репозитории на указанный момент времени.

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

git archive -o archive.zip master

Вы также можете указать хэш коммита вместо имени ветки, чтобы создать архив конкретной фиксации:

git archive -o archive.zip cb7f1d


Эта строка создаст zip-файл с именем “archive.zip ”, который содержит все файлы в репозитории в том состоянии, в котором они находились на момент совершения коммита с хэшем “cb7f1d”.

Вы также можете указать формат файла, например, чтобы создать tar-файл вместо zip-файла:

git archive -o archive.tar — format=tar master

Ещё можно указать префикс для файлов в архиве, например:

git archive -o archive.zip — prefix=myproject/ master

Строка создаст zip-файл с именем “archive.zip ”, который содержит все файлы в главной ветви в текущем состоянии, но файлы в архиве будут иметь префикс “myproject/”.

git mv

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

Вот пример того, как вы могли бы использовать git mv:

Допустим, у вас есть файл под названием oldfile.txt в вашем репозитории, и вы хотите переименовать его в newfile.txt . Для этого вы можете использовать следующую команду:

git mv oldfile.txt newfile.txt

Это позволит переименовать файл в вашем локальном репозитории, а также поэтапно внести изменения, чтобы их можно было зафиксировать.

Вы можете подтвердить изменение, запустив git status, который покажет, что файл oldfile.txt был переименован в newfile.txt .

Если вы удовлетворены изменениями, вы можете зафиксировать их, запустив git commit -m "Renamed oldfile.txt to newfile.txt".

Наконец, вы можете отправить изменения в удалённый репозиторий с помощью команды git push.

Пожалуйста, обратите внимание, что git mv по сути эквивалентен запуску git rm в исходном файле, а затем запуску git add в новом файле.

Также важно отметить, что эта команда работает только в локальном репозитории. Если вам нужно переместить файлы в удаленный репозиторий, вам необходимо использовать такие команды, как git rm и git add отдельно.

git clean

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

Например, если у вас есть каталог с некоторыми файлами, которые не отслеживаются Git, и вы хотите их удалить, вы можете выполнить следующую команду:

git clean -f

Это приведёт к удалению всех неотслеживаемых файлов из рабочего каталога. Если вы также хотите удалить неотслеживаемые каталоги, вы можете использовать опцию -d:

git clean -f -d

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

Важно отметить, что git clean – опасная команда, так как она удаляет файлы безвозвратно и восстановлению они не подлежат. Итак, рекомендуется сначала использовать параметр -n, чтобы посмотреть, какие файлы будут удалены, прежде чем запускать команду без него.

git clean -n

Это покажет вам список файлов и каталогов, которые будут удалены, но не приведёт к их удалению.

git rm

Команда, используемая для удаления файлов из репозитория Git. Она может использоваться для удаления одного или нескольких файлов одновременно, а также для удаления отслеживаемых и неотслеживаемых файлов.

Например, если вы хотите удалить файл с именем example.txt из вашего репозитория, а также удалить его из вашей локальной файловой системы, вы можете использовать команду:

git rm example.txt

Если вы хотите удалить файл, но сохранить его копию в своей локальной файловой системе, вы можете использовать опцию --cached (кэшировать):

git rm --cached example.txt

Вы также можете использовать git rm для удаления каталога с опцией -r:

git rm -r myfolder

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

git prune

Команда вводится для очистки любых устаревших или “зависших” ссылок в локальном репозитории. Сюда входят объекты, которые больше недоступны из какой-либо ветви или тега, а также ветви удалённого отслеживания, которые больше не существуют на удалённом компьютере.

Допустим, вы работали над веткой под названием feature1, закончили работу над ней,объединили её в master, а затем удалили. Однако ветвь всё ещё присутствует в вашем локальном репозитории и занимает много места. Чтобы удалить все устаревшие ссылки, вы можете выполнить следующую команду:

git prune

Она удалит все ссылки, которые больше не нужны, такие как ветвь feature1, которую вы удалили.

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

git prune -n

Если вы удовлетворены результатами, вы можете запустить команду без опции -n, чтобы фактически удалить ссылки.

Важно отметить, что git prune не удаляет ветви, которые всё ещё отслеживаются другими ветвями. Кроме того, рекомендуется время от времени запускать эту команду, чтобы поддерживать чистоту и эффективность вашего локального репозитория.

git shortlog

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

Допустим, вы хотите просмотреть сводку коммитов в вашем репозитории, сгруппированных по авторам. Для этого вы можете использовать следующую команду:

git shortlog

При этом отобразится список авторов и количество совершённых ими коммитов в порядке убывания количества коммитов.

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

git shortlog -n

Ещё вы можете использовать опцию -e, чтобы включить адрес электронной почты автора в выходные данные:

git shortlog -e

Вы можете использовать параметр -s для отображения количества фиксаций в сводном формате:

git shortlog -s

Вы также можете использовать параметр -w для определения ширины столбца выходных данных

git shortlog -w <column width>

git verify-commit

Команда проверяет подпись GPG фиксации. GPG (GNU Privacy Guard) – это инструмент, который позволяет вам подписывать и проверять цифровые подписи с использованием криптографии с открытым ключом. Когда коммит подписан, к коммиту добавляется подпись GPG, и эта подпись может быть проверена с помощью git verify-commit.

Например, если вы хотите проверить подпись фиксации с помощью хэша cb7f1d, вы можете выполнить следующую команду:

git verify-commit cb7f1d

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

gpg: Signature made Mon 01 Jan 2020 00:00:00 AM UTC
gpg: using RSA key ABCD1234
gpg: Good signature from “John Doe <john.doe@example.com>” [ultimate]
gpg: aka “John Doe (Example Company) <john.doe@example.com>” [ultimate]

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

git verify-tag

Она используется для проверки подлинности тега в репозитории Git. Это делается путём проверки подписи на объекте тега с помощью GPG.

Во-первых, вам нужно будет создать подписанный тег. Вы можете сделать это, используя опцию -s при выполнении команды git tag:

git tag -s v1.0

Далее вам нужно будет импортировать открытый ключ человека, создавшего тег. Это можно сделать с помощью команды git-key:

git key import publickey.asc

Наконец, вы можете запустить команду git verify-tag, чтобы проверить подлинность тега:

git verify-tag v1.0

Это проверит подпись на объекте тега и укажет, является ли это действительной подписью или нет.

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

Заключение

Подводя итог, можно сказать, что Git – это мощный инструмент для управления кодом и проектами. В то время как базовые команды Git, такие как commit, push и pull, необходимы для повседневного использования, существует большое разнообразие продвинутых команд, которые могут помочь вам работать более эффективно.

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

+1
3
+1
3
+1
1
+1
0
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *