Я его немного допилил:
- добавил возможность писать без кавычек несколько слов, чтобы они улетали как commit message
- проверку, что ты коммитишь НЕ в master/main ветку
Получилось очень удобно, теперь я просто в терминале пишу
gacp Update Nginx configs, вместо череды из git add, git commit -m, git push (хотя эти команды уже где-то в подкорке сидят).Вот код функций, там я утянул еще из oh-my-zsh шаблонов одну:
function git_current_branch() {
local ref
ref=$(git symbolic-ref --quiet HEAD 2> /dev/null)
local ret=$?
if [[ $ret != 0 ]]; then
[[ $ret == 128 ]] && return # no git repo.
ref=$(git rev-parse --short HEAD 2> /dev/null) || return
fi
echo ${ref#refs/heads/}
}
gacp() {
if [ -z "$1" ]; then
echo "Commit message required"
return 1
fi
local branch=$(git_current_branch)
if [[ "$branch" == "master" || "$branch" == "main" ]]; then
echo "You are on branch '$branch'"
read "REPLY?Commit to $branch? (Y/n) "
if [[ $REPLY =~ ^[Nn]$ ]]; then
echo "Commit cancelled"
return 1
fi
fi
git add -A
git commit -m "$*"
git push origin "$(git_current_branch)"
}Как обычно код можно посмотреть у меня в репозитории, вот ссылка.
