Команды Git

Info

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

branch

Вывод текущей ветки

git rev-parse --abbrev-ref HEAD

Пример ответа:

master

Вывод списка всех веток в локальном репозитории

git branch

Пример вывода результата, где звездочка (*) указывает на текущую ветку:

* master
  feature
  bugfix

Вывод списка веток в удаленном репозитории

git branch -r

Пример вывода результата:

  origin/CICD_branch_protection_demo
  origin/HEAD -> origin/master
  origin/demo
  origin/master
  origin/secretsDemo
  origin/test5

Стрелочка указывает на то, какая ветка является HEAD (точкой входа) в удаленном репозитории.

origin обозначает удаленный репозиторий, из которого был склонирован локальный репозиторий. По умолчанию, когда вы клонируете репозиторий, он автоматически называется origin. Этот псевдоним используется для обращения к удаленному репозиторию при выполнении операций, таких как получение изменений (git pull), отправка изменений (git push) и просмотр удаленных веток (git branch -r).

Удаление ветки локально

git branch -d <branch_name>

checkout

Создание и переключение на ветку

git checkout -b <new_branch>

cherry-pick

Чтобы найти хэш коммита, воспользуйтесь командой git log. В данном примере отобразятся хэши последних трех коммитов:

git log -3 --oneline

Далее примените коммит к текущей ветке:

git cherry-pick <commit-hash>

commit

Добавление изменений и создание коммита c сообщением в одной строке

git add .
git commit -m 'текст сообщения к коммиту'

Внесение изменений в последний коммит

Замена коммита и корректировка комментария к нему:

git add .
git commit --amend

Если не требуется корректировать комментарий к последнему коммиту:

git add .
git commit --amend --no-edit

config

Установка имени и email пользователя для текущего репозитория

git config --local user.name "John Doe"
git config --local user.email "johndoe@gitverse.ru"

Проверка имени и email пользователя для текущего репозитория (local):

git config --local user.name
git config --local user.email

Установка имени и email пользователя для всех репозиториев

git config --global user.name "John Doe"
git config --global user.email "johndoe@gitverse.ru"

Проверка имени и email пользователя для всех репозиториев на вашем компьютере (global):

git config --global user.name
git config --global user.email

Просмотр всех настроек

Просмотр всех настроек для отдельного репозитория (local):

git config --local --list

Просмотр глобальных настроек (global):

git config --global --list

diff

Сравнение веток

git diff <branch1> <branch2>

fetch

Загрузка отдельной ветки удаленного репозитория

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

git fetch origin <branch_name>

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

git fetch origin <branch_name1>:<branch_name2>

merge

Применение изменений другой ветки к текущей

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

git checkout <ветка без изменений>
git merge feature <ветка с изменениями>

rebase

Прекращение процесса rebase

Если требуется прервать незавершенный процесс rebase, введите команду:

git rebase --abort

Изменение комментариев коммитов

Для изменения комментариев:

  1. Проиндексируйте ваши текущие изменения в ветке (см. Добавление изменений и создание коммита).

  2. Определите количество последних коммитов для редактирования:

    git rebase -i HEAD~<количество коммитов>

    Пример вывода для четырех последних коммитов:

    pick 7fc8ad9 <комментарий 1>
    pick bcdc6a6 <комментарий 2>
    pick eab8c44 <комментарий 3>
    pick ad904bc <комментарий 4>
  3. Чтобы исправить комментарии 3 и 4, замените pick на r или на reword и сохраните изменения:

    pick 7fc8ad9 <комментарий 1>
    pick bcdc6a6 <комментарий 2>
    r eab8c44 <комментарий 3>
    reword ad904bc <комментарий 4>
  4. Далее вам предложат последовательно изменить комментарии выбранных коммитов.

reset

Удаление локальных изменений или последних коммитов

Отмена всех локальных изменений в отслеживаемых файлах:

git reset --hard
git clean -df

Команда удаления последних двух коммитов:

git reset --hard HEAD~2
git clean -df

Пояснения:

  • git reset --hard: возвращение рабочей директории к состоянию последнего коммита;
  • git reset --hard HEAD~2: отмена последних двух коммитов;
  • git clean -df: удаление всех неотслеживаемых файлов (которые не были добавлены в репозиторий и не находятся под версионным контролем) и директории.

pull

Получение всех изменений из удаленного репозитория в локальную ветку

git checkout <целевая ветка>
git pull

Команда git pull выполняет два действия:

  1. Сначала команду git fetch, которая загружает все изменения с удаленного репозитория, но не применяет их к вашей локальной ветке.
  2. Затем команду git merge, которая объединяет изменения, загруженные с удаленного репозитория с вашей локальной веткой.

push

Отправка изменений отдельной ветки

Отправка изменений текущей ветки:

git push

Отправка изменений в удаленный репозиторий (origin) заданной ветки:

git push origin <branch_name>

Note

URL удаленного репозитория можно изменить или добавить, см. Изменение URL удаленного репозитория.

Отправка изменений со всех веток

git push --all

Отправка изменений по https

Для отправки изменений ветки по https используйте команду git push https://<имя_пользователя>:<пароль_пользователя>@<URL_репозитория>, например:

git push https://author:12345678@gitverse.ru/author/repo_example

Дополнительно см.:

  1. Получение URL репозитория.

Note

Для отправки по https можно использовать токен доступа, например:

git push https://<personal_access_token>@gitverse.ru/author/repo_example

Токен доступа можно добавить в репозиторий, чтобы не указывать его в каждой команде:

  1. Получите токен для работы с репозиториями.
  2. Сохраните токен доступа в локальном репозитории, например:
    git remote set-url origin https://<personal_access_token>@gitverse.ru/author2/packages_examples.git
    Где:
    • <personal_access_token> — токен доступа;
    • author2 — имя пользователя или организации;
    • packages_examples.git — репозиторий.
  3. Далее указание токена, логина или пароля в командах не потребуется.

Перезапись истории на удаленной ветке

git push --force

Warning

Команда git push --force может привести к потере изменений других разработчиков, если они уже сделали изменения в той же ветке.

Удаление ветки на сервере

git push origin --delete <branch_name>

Отправка тега в удаленный репозиторий

git push origin <название тэга>

Удаление тега из удаленного репозитория

git push --delete origin <название тэга>

tag

Команда git tag используется для работы с тегами. Теги в Git — это статические ссылки на определенные коммиты. Они обычно используются для пометки ключевых точек в истории репозитория.

Список тегов в локальном репозитории

git tag

Список тегов в удаленном репозитории

git ls-remote --tags origin

Присвоение тега на текущем коммите с аннотацией

git tag -a <название тега> -m "<текст аннотации>"

Присвоение тега со стандартной аннотацией

git tag <название тега>

Присвоение аннотации существующему тегу

git tag -a -f <название тега> -m "<текст аннотации>"

Отправка тега в удаленный репозиторий

git push origin <название тега>

Отправка тега в удаленный репозиторий c опцией force

git push origin <название тега> --force

Удаление тега из локального и удаленного репозитория

git tag -d <название тэга>
git push --delete origin <название тэга>

Что дальше