Skip to main content

Горячие команды Git

                                                                                                                                                                   

Операции 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 .
Операции с 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
Операции с REPOs

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

git clone <link.repo>

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

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

Влить изменения удалённой ветки в вашу текущую ветку (аналог merge)

git pull <link.repo> <branch-name>

Получить изменения удалённой ветки (без merge, 1 fetch = 1 ветка)

git fetch <link.repo> <branch-name>

Удалённая ветка помещается во временное хранилище - так называемую 'FETCH_HEAD-ветку'ветку
После переключения на 'FETCH_HEAD-ветку'ветку мы узнаем её 'hash'HASH
Изучив полученные изменения в 'FETCH_HEAD-ветке'ветке мы можем заMERGEить её с нужной нам веткой
2-мя способами:

# Создать новую локальную ветку из 'FETCH_HEAD-ветки'
# изучить изменения и заMERGEиться:

git branch <branch-name> <hash>
git merge <branch-name>

МожноMERGE заMERGEитьновой новую веткуветки с локальной используя только <hash>HASH 'от FETCH_HEAD-ветки':ветки

git merge <hash>


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

git push <link.repo> --all

git push --force <branch-name>

Операции с ALIASes

 

Отправка на проверку dev репозитория Rebrainme

git init
git config --global user.name "Yuriy"
git config --global user.email "xeonmp22@gmail.com"
git init --initial-branch=main
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"
git push --set-upstream origin main
Добавление нового commit-а в основной репозиторий Rebrainme

cd $HOME/rebrainme/devops/07_cicd
git rm -rf roles/
cd ../07_cicd.dev
rm -rf .git
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 --set-upstream origin master
АлиасАлиасы для графического формата команды 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(bold yellow)%d%C(reset)' --all"

#ПодключитьПодключить алиас без ключа --all (отображение только текущей ветви)

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(bold yellow)%d%C(reset)'"

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

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

git config --global --unset alias.log1