Горячие команды 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
Изучив изменения в FETCH_HEAD-ветке мы можем заMERGEить её с нужной нам веткой
2-мя способами:
# Создать новую локальную ветку из 'FETCH_HEAD-ветки'
# изучить изменения и заMERGEиться:
git branch <branch-name> <hash>
git merge <branch-name>
MERGE новой ветки с локальной используя только HASH от FETCH_HEAD-ветки
git merge <hash>
Отправка всех веток локального репозитория на удалённый репозиторий
git push <link.repo> --all
git push --force <branch-name>
Операции с 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(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