GIT Top Commands

                                                                                                                                                                   

Операции STATUS

Инициализация каталога как Git-репозитория

git init

Команда показывающая какие файлы в каком состоянии находятся

git status

Показать историю коммитов в текущей ветке / всех ветках

git log
git log --all
Операции BRANCH ветвления

Отобразить активные ветки / все активные и доступные ветки

git branch
git branch -a

Переключиться на другую ветку

git checkout <branch-name>

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

git checkout -b <branch-name>

Проиндексировать все файлы в папке (для commit)

git add .

Удалить ветку из remote REPO

git push origin --delete develop

Отправка всех веток локального репозитория на удалённый репозиторий

git push <link.repo> --all
git push --force <branch-name>
Операции с COMMITs

Создать коммит с указанием имени

git commit -m "new commit"

Автоматическая индексация всех уже отслеживаемых файлов

git commit -a
git commit -am "new commit" (автоиндекс+имя)

Редактор названия коммитов по-умолчанию

git config --global core.editor "vim"

Изменить сообщение последнего коммита

git commit --amend

Забыть все последующие коммиты от указанного по <hash>

git reset --hard <hash>

Изменить дату текущего коммита

GIT_COMMITTER_DATE="Thu Jun 08 13:44:15 2023 +0300" git commit --amend
Операции с TAGs

Создать новый Tag

git tag -a v1.0 -m "feature01"
git tag --list

Отправить Tag на удалённый репозиторий

git push origin v1.0
Операции с ALIASes

Алиасы для графического формата команды git log:

Подключить алиас с ключом --all (отображение всех ветвей)

git config --global alias.log0 "log \
  --graph \
  --abbrev-commit \
  --decorate \
  --format=format:'\
%C(bold blue)%h%C(reset) - \
%C(bold green)(%ci)%C(reset) \
%C(white)%s%C(reset) \
%C(dim white)- %an%C(reset)\
%C(auto)%d%C(reset)' \
  --all

Подключить алиас с ключом --branches (отображение локальных веток)

git config --global alias.log1 "log \
  --graph \
  --abbrev-commit \
  --decorate \
  --format=format:'\
%C(bold blue)%h%C(reset) - \
%C(bold green)(%ci)%C(reset) \
%C(white)%s%C(reset) \
%C(dim white)- %an%C(reset)\
%C(auto)%d%C(reset)' \
  --branches"

Отключить алиас

git config --global --unset alias.log1
Операции с REPOs

Клонировать удалённый репозиторий (папка будет создана)

git clone <link.repo>

Клонировать удалённый репозиторий по branch+tag

git clone <link.repo> --branch '<tag-name>'

Скачать изменения без слияния (fetch)
Изменения сохраняются в FETCH_HEAD

git fetch origin develop

Посмотреть HASH скачанного коммита

git rev-parse FETCH_HEAD         # полный hash
git log FETCH_HEAD -1 --oneline  # краткий hash
git diff HEAD FETCH_HEAD         # посмотреть изменения

Слить изменения

Способ 1: Через временную ветку

git branch temp-branch FETCH_HEAD # создать ветку
git merge temp-branch             # смержить
git branch -d temp-branch         # удалить ветку

Способ 2: Через HASH

git merge FETCH_HEAD     # смержить напрямую
git merge <hash>         # смержить по hash
git pull origin develop  # fetch + merge одной командой
Примеры Операций с REPOs

Пример с Новым Repo

# Инициализация и Push-инг Commit-а в Новый Repo
git init
git config --global user.name "Yuriy"
git config --global user.email "xeonmp22@gmail.com"
git init --initial-branch=main
#git remote set-url origin git@gitlab.rebrainme.com:devops_users_repos/725/devops/07_cicd.dev.git
#git remote remove origin
git remote add origin git@gitlab.rebrainme.com:devops_users_repos/725/devops/07_cicd.dev.git
git add .
git commit -am "34: Logging 6/prom.grafana"
# При 1-ом Commit-е делаем --set-upstream
git push -u origin main
# Для последующих Commit-ов
git push --all

Пример с Рабочим Repo

# Очистка рабочего Repo от файлов Старых Commit-ов
cd $HOME/rebrainme/devops/07_cicd
git rm -rf roles/
cd ../07_cicd.dev
rm -rf .git

# Копирование новых файлов в рабочий Repo
cp -r .gitignore main.tf playbook.yml README.md roles/ ../07_cicd
cd ../07_cicd
git add .
git commit -am "34: Logging 6/prom.grafana"
git push --all

Revision #28
Created 2026-06-22 13:13:43 UTC by sa
Updated 2026-07-09 20:13:22 UTC by sa