Работа с терминалом
В данном разделе представлены наиболее востребованные команды для работы с GitVerse через терминал:
-
установка имени и email пользователя:
-
работа с ветками:
- создание ветки и переключение на неё - git checkout -b;
- загрузка отдельной ветки - git fetch origin;
- вывод списка всех веток - git branch;
- удаление ветки локально - git branch -d;
- удаление ветки на сервере - git push origin --delete;
-
работа с коммитами:
-
работа с тегами;
-
дополнительно:
Работа с файлами и директориями
Создание и удаление директории
Команда создания директории:
mkdir имя_директории
Команда удаления директории со всеми вложениями (рекурсивно):
rm -r имя_директории
Создание и удаление файла
Команда создания файла:
touch имя_файла
Команда удаления файла:
rm имя_файла
Создание или перезапись файла с коротким сообщением
Команда с аргументом >
перезапишет существующий файл или создаст новый с коротким текстовым сообщением:
echo "Ваш текст здесь" > имя_файла
Добавление сообщения в файл
Команда с аргументом >>
добавит текст в конец файла или создаст новой файл в случае его отсутствия:
echo "Ваш текст здесь" >> имя_файла
Для редактирования текста в консоли можно использовать следующие утилиты:
- Vim
- Nano
- Emacs
- Sed
- Awk
Каждая из этих утилит имеет свои особенности и специфические команды для работы с текстом в консоли.
Редактирование в консоли
Режим вставки текста
Наведите курсор на нужный участок текста, сменить раскладку клавиатуры на английскую, нажмите клавишу i.
Выход без сохранения
- сменить раскладку клавиатуры на английскую;
- нажать клавишу Esc;
- набрать
:q
; - нажать клавишу Enter.
Сохранить изменения и выйти
- сменить раскладку клавиатуры на английскую;
- нажать клавишу Esc;
- набрать
:wq
; - нажать клавишу Enter.
Изменение URL удаленного репозитория
URL удаленного репозитория состоит из имени и названия репозитория:
ssh://git@gitverse.ru:2222/<username>/<repository_name>.git
При смене username или названия репозитория в GitVerse при работе с репозиторием локально вам может потребоваться изменить его URL.
Для изменения настроек выполните команды:
- чтобы посмотреть текущее заданное имя, выполните:
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)
- чтобы задать новое имя, выполните:
git remote set-url origin ssh://git@gitverse.ru:2222/<new_username>/<new_repository_name>
Примеры работы с репозиторием через токен авторизации
В примере ниже:
- клонирование репозитория по токену авторизации,
- замена URL удаленного репозитория, где задаются новые:
- токен авторизации;
- username пользователя;
- имя репозитория;
- проверка нового URL удаленного репозитория.
Пример:
$ git clone https://токен_авторизации4@gitverse.ru/ваш_username/имя_репозитория.git
$ git remote set-url origin https://новый_токен_авторизации4@gitverse.ru/новое_username/новое_имя_репозитория.git
$ git remote -v
origin origin origin https://новый_токен_авторизации4@gitverse.ru/новое_username/новое_имя_репозитория.git (fetch)
origin origin origin https://новый_токен_авторизации4@gitverse.ru/новое_username/новое_имя_репозитория.git (push)
Примеры работы с репозиторием по HTTPS
В примере ниже:
- клонирование репозитория по HTTPS;
- замена URL удаленного репозитория, где задаются новые:
- username пользователя;
- имя репозитория;
- проверка нового URL удаленного репозитория.
Пример:
$ git clone origin https:/gitverse.ru/ваш_username>/имя_репозитория.git
$ git remote -v
$ git remote set-url origin https:/gitverse.ru/ваш_новый_username/новое_имя_репозитория.git
origin origin https:/gitverse.ru/ваш_новый_username/новое_имя_репозитория.git (fetch)
origin origin https:/gitverse.ru/ваш_новый_username/новое_имя_репозитория.git (push)
Связанные разделы
- Ключи SSH.
- Смена username.
- Создание и смена пароля.
- Смена названия репозитория, веб-сайта и описания.
- Токены и работа с репозиторием.
- Клонирование репозитория.
branch
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
checkout
Создание и переключение на ветку
git checkout -b <new_branch>
cherry-pick
Чтобы найти хэш коммита, воспользуйтесь командой git log
. В данном примере отобразятся хэши последних трех коммитов:
git log -3 --oneline
Далее примените коммит к текущей ветке:
git cherry-pick <commit-hash>
commit
commit
Добавление изменений и создание коммита c сообщением в одной строке
git add .
git commit -m 'текст сообщения к коммиту'
Внесение изменений в последний коммит
Замена коммита и корректировка комментария к нему:
git add .
git commit --amend
Если не требуется корректировать комментарий к последнему коммиту:
git add .
git commit --amend --no-edit
config
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
diff
Сравнение веток
git diff <branch1> <branch2>
fetch
fetch
Загрузка отдельной ветки удаленного репозитория
Команда извлекает данные ветки из удаленного репозитория:
git fetch origin <branch_name>
Команда извлекает данные ветки из удаленного репозитория и сохраняет их локально в ветке с новым именем:
git fetch origin <branch_name1>:<branch_name2>
merge
merge
Применение изменений другой ветки к текущей
Чтобы учесть изменения из другой ветки следует перейти в целевую ветку и из неё указать на ветку с изменениями:
git checkout <ветка без изменений>
git merge feature <ветка с изменениями>
rebase
rebase
Прекращение процесса rebase
Если требуется прервать незавершенный процесс rebase, введите команду:
git rebase --abort
Изменения комментариев коммитов
Для изменения комментариев:
-
проиндексируйте ваши текущие изменения в ветке (см. Добавление изменений и создание коммита);
-
определите количество последних коммитов для редактирования:
git rebase -i HEAD~<количество коммитов>
Пример вывода для четырех последних коммитов:
pick 7fc8ad9 <комментарий 1>
pick bcdc6a6 <комментарий 2>
pick eab8c44 <комментарий 3>
pick ad904bc <комментарий 4>
- чтобы исправить комментарии 3 и 4, замените
pick
наr
или наreword
и сохраните изменения:
pick 7fc8ad9 <комментарий 1>
pick bcdc6a6 <комментарий 2>
r eab8c44 <комментарий 3>
reword ad904bc <комментарий 4>
- далее вам предложат последовательно изменить комментарии выбранных коммитов.
reset
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
pull
Получение всех изменения из удаленного репозитория в локальную ветку
git checkout <целевая ветка>
git pull
Команда git pull
выполняет два действия:
push
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 <название тэга>