写这个就是为了抛砖引玉提供一种快捷命令的方式顺便记录一下,原理就是利用linux
系统的alias
自定义命令,实现复杂脚本处理逻辑(git
的 alias
只能针对单独git命令设置)。毕竟重复的操作能少一些是一些~
vim ~/.bash_profile
添加以下配置,可以根据自己习惯自定义
.bashrc
alias gp="sh ~/gal/gp.sh"
alias gc="sh ~/gal/gc.sh"
alias gmo="sh ~/gal/gmo.sh"
alias gml="sh ~/gal/gml.sh"
alias gs="git status"
alias grh="sh ~/gal/grh.sh"
alias gpl="git pull --rebase"
alias cls="clear"
保存以后(先创建对应gal下sh文件)再执行source
命令
source ~/.bashrc
生效以后 就可以使用快捷命令了
比如
gp 'fix: xxx yfdtr-1'
~/gal
目录下创建:
gc.sh
#!/bin/bash
git add .;
if [ -z $1 ]
then
echo 'gc [commit msg]'
exit 1
fi
git commit -m $0
gml.sh
#!/bin/bash
if [ -z $1 ]
then
echo 'gml [branch name]'
exit 1
fi
git merge --log --no-ff $1
gmo.sh
#!/bin/bash
if [ -z $1 ]
then
echo 'gmo [branch name]'
exit 1
fi
git merge --log --no-ff "origin/$1"
gp.sh
#!/bin/bash
git add .;
if [ -z "$1" ];
then
echo 'gp [commit msg]'
exit 1
fi
git commit -m "$1"
git pull --rebase > .interim
conflict=0
cat .interim | while read line
do
if [[ $line =~ "CONFLICT" ]];
then
$conflict=1
fi
done
rm -f .interim
if [ "$conflict" == 0 ];
then
gtr push
fi
grh.sh
#!/bin/bash
if [ -z $1 ]
then
git reset --hard
else
git reset --hard $1
fi