shell/dotfiles/.gitconfig

96 lines
6.6 KiB
INI
Raw Normal View History

[user]
2022-01-09 09:02:45 +00:00
name = AnthonyAxenov
email = anthonyaxenov@gmail.com
signingkey =
[core]
2022-01-09 09:02:45 +00:00
editor = nano
autocrlf = input
2022-01-09 09:02:45 +00:00
[commit]
gpgSign = true
[tag]
gpgSign = true
[pull]
default = current
rebase = false
[push]
default = current
[alias]
2022-01-09 09:02:45 +00:00
# общее -----------------------------------------------------------------
aliases = config --get-regexp '^alias' # показать список доступных алиасов
2022-01-09 09:02:45 +00:00
head = log -1 HEAD # показать последний коммит в текущей ветке
# название текущей ветки или тега при detached head:
dehead = "!BR=$(git branch --show-current); if [ -n \"$BR\" ]; then echo $BR; else git describe --contains --all HEAD; fi;"
2022-01-09 09:02:45 +00:00
# ветки -------------------------------------------------------------------
bheads = branch -vv # ветки и их последние коммиты
# br = status -sb # показать название текущей ветки
# branch = branch --list -vv # показать текущую ветку в общем списке локальных веток
#mn = merge --no-ff # слить ветку с принудительным коммитом слияния
brd = branch -D # удалить ветку локально
brod = "!git push origin :"${1}";" # удалить ветку на origin
merged = branch --merged # показать список веток, слитых в текущую
review = "!git fetch origin pull/$1/head:pr/$1 && git checkout pr/$1" # github: встать на PR с указанным id
# удалить локальные ветки, слитые в текущую, плюс все мёртвые ссылки на ветки в origin:
trim = "!DEFAULT=master; git branch --merged ${1-$DEFAULT} | grep -v " ${1-$DEFAULT}$" | xargs git branch -d; git remote prune origin;"
2022-01-09 09:02:45 +00:00
# переключение ------------------------------------------------------------
co = checkout # переключиться на ветку/тег/коммит
cob = checkout -b # создание новое ветки
master = "!git checkout master && git pull" # переключиться на ветку master и обновить
dev = "!git checkout dev && git pull" # переключиться на ветку dev и обновить
develop = "!git checkout develop && git pull" # переключиться на ветку develop и обновить
# фиксация изменений ------------------------------------------------------
c = commit # коммит
ca = commit -a # коммит всех файлов
cm = commit -m # коммит с заданным сообщением
cam = commit -am # коммит всех файлов с заданным сообщением
2022-01-09 09:02:45 +00:00
amend = commit --amend --no-edit # прикрепляет все индексированные файлы к последнему коммиту, используя уже существующее сообщение
# amenda = commit --amend --no-edit -a
amendm = commit --amend -m # прикрепляет все индексированные файлы к последнему коммиту, спрашивает новое сообщение к коммиту
2022-01-09 09:02:45 +00:00
cp = cherry-pick # применить коммит поверх текущего HEAD
diffc = diff --cached # показать дельту staged-файла
uncommit = reset --soft HEAD~1
# управление изменениями, сброс состояний, откат --------------------------
2022-01-09 09:02:45 +00:00
st = status -sb # короткий status
rh = reset --hard # откат коммита с удалением всех изменений на указанный коммит
rhh = reset --hard HEAD # откат коммита с удалением всех изменений на последний коммит
2022-01-09 09:02:45 +00:00
reseth = reset --mixed HEAD # откат коммита с сохранением всех изменений
unstage = reset HEAD # переводит файл staged => unstaged без потери изменений
clear = checkout -- # удаляет изменения в файле
2022-01-09 09:02:45 +00:00
# алиасы для временной фиксации
# на самом деле, для таких дел надо использовать git stash
# save = !git add -A && git commit -m 'SAVEPOINT'
# wip = commit -am "WIP"
# undo = reset HEAD~1 --mixed
# работа с remote-репами --------------------------------------------------
2022-01-09 09:02:45 +00:00
pushf = push --force # отправить ветку принудительно
pushft = push --tags --force # отправить теги принудительно
pullf = pull --force # отправить ветки принудительно
pullt = pull --tags --force # получить теги принудительно
#ploh = pull origin HEAD # получить текущую ветку из origin
remotes = remote -v # показать список удалённых репозиториев
#sy = remote update origin --prune #
rso = remote show origin # показать состояние локальных веток относительно удалённых на origin bare
2022-01-09 09:02:45 +00:00
rpo = remote prune origin # удалить все мёртвые ссылки на ветки в origin
repush = 'git push origin :$1 && git push origin $1' # удалить ветку на origin и отправить её заново
# просмотр логов ----------------------------------------------------------
2022-01-09 09:02:45 +00:00
heads = log --graph --decorate --simplify-by-decoration --oneline # коммиты, которыми оканчиваются ветки
tree = log --graph --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'
hist = log --pretty=format:\"%h | %an (%ad) %s%d\" --graph --date=relative
logfull = log --graph --decorate --all
grog = log --graph --decorate --all --pretty=format:'%C(bold red)%h%C(reset) %C(bold blue)%an%C(reset) %C(green)%cr%C(reset) [%aD]%d%n%B'
2022-01-09 09:02:45 +00:00
# сабмодули ---------------------------------------------------------------
si = submodule init # инициализация сабмодулей
sdi = submodule deinit -f # удаление сабмодуля
sa = submodule add # добавление сабмодуля
sup = submodule update # обновление сабмодуля
sst = submodule status # статус сабмодулей
ss = submodule summary # список сабмодулей