Подготовка окружения
.bashrc
для Linux, .bash_profile
для macOS, или git bash
для Windows.
Отслеживание состояния Git: Загрязнен ли репозиторий?
git status
.bashrc
.bash_profile
function parse_git_dirty {
[[ -n "$(git status -s 2> /dev/null)" ]] && echo -e '\033[1;31m'
}
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/ $(parse_git_dirty)(\1)/"
}
if [ "$color_prompt" = yes ]; then
PS1="${debian_chroot:+($debian_chroot)}\[\033[01;36m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
parse_git_dirty — проверяет, есть ли изменения в рабочем каталоге, которые не были зафиксированы. parse_git_branch — выводит текущую ветку, в которой вы находитесь.
Использование псевдонимов для Git-команд
alias gaa='git add -A'
alias gcm='git commit -m'
alias gcma='git commit -a -m'
alias gwait='git reset HEAD' # Отмена стадирования всех изменений.
alias gl='git log --graph --pretty='\''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\'' --abbrev-commit'
alias gundo='git reset --soft HEAD^' # Отмена последнего коммита и возврат файлов в состояние стадирования.
alias gco='git checkout'
alias gpusho="git push origin ${parse_git_branch}"
alias gpullo="git pull --rebase origin ${parse_git_branch}"
Автозаполнение команд Git
.bashrc
.bash_profile
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
if [ -f ~/.git-completion.bash ]; then
. ~/.git-completion.bash
fi