Работа с терминалом

Работа с терминалом

В данном разделе представлены наиболее востребованные команды для работы с GitVerse через терминал:

  1. установка имени и email пользователя:

  2. работа с ветками:

  3. работа с коммитами:

  4. работа с тегами;

  5. дополнительно:

Работа с файлами и директориями

Создание и удаление директории

Команда создания директории:

mkdir имя_директории

Команда удаления директории со всеми вложениями (рекурсивно):

rm -r имя_директории

Создание и удаление файла

Команда создания файла:

touch имя_файла

Команда удаления файла:

rm имя_файла

Добавление в файл небольшого фрагмента текста

Команда добавления в файл небольшого фрагмента текста:

echo "Ваш текст здесь" > имя_файла

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

  • Vim
  • Nano
  • Emacs
  • Sed
  • Awk

Каждая из этих утилит имеет свои особенности и специфические команды для работы с текстом в консоли.

Редактирование в консоли

Режим вставки текста

Навести курсор на нужный участок текста, сменить раскладку клавиатуры на английскую, нажать клавишу i.

Выход без сохранения

  1. сменить раскладку клавиатуры на английскую;
  2. нажать клавишу Esc;
  3. набрать :q;
  4. нажать клавишу Enter.

Сохранить изменения и выйти

  1. сменить раскладку клавиатуры на английскую;
  2. нажать клавишу Esc;
  3. набрать :wq;
  4. нажать клавишу Enter.

Изменение URL удаленного репозитория

URL удаленного репозитория состоит из имени и названия репозитория:

ssh://git@gitverse.ru:2222/<username>/<repository_name>.git

При смене username или названия репозитория в GitVerse при работе с репозиторием локально вам может потребоваться изменить его URL.

Для изменения настроек выполните команды:

  1. чтобы посмотреть текущее заданное имя, выполните:
git remote -v

Отобразится сообщение вида:

origin  ssh://git@gitverse.ru:2222/<username>/<repository_name>.git (fetch)
origin  ssh://git@gitverse.ru:2222/<username>/<repository_name>.git (push)
  1. чтобы задать новое имя, выполните:
git remote set-url origin ssh://git@gitverse.ru:2222/<new_username>/<new_repository_name>

branch

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

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 пользователя для всех репозиториев на вашем компьютере

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

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

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

git config --list

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

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

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

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

git push origin <branch_name>

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

git push --force
⚠️

Команда 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 <название тэга>