git 常用指令积累
便捷的命令行alias
放在 ~/.bashrc文件中:
# 用于方便使用 git
alias gitsts='git status'
alias gitba='git branch -avv'
alias gitbr='git branch'
alias gitbv='git branch -vv'
alias gitco='git checkout'
alias gitlo='git log'
alias gitll='git log --oneline'
alias gitla='git log --oneline --all --graph'
alias gitcp='git cherry-pick -x'chain.sh,便捷的rebase工具
可以自动rebase多个branch。可以放在 ~/.local/bin/ 目录下:
#!/bin/bash
WS_ROOT="/home/talentq/workstation/xxx"
branch_chain=(
1_aaa
2_bbb
3_ccc
)
# 切换到工作目录
cd $WS_ROOT
# 检查分支是否存在
for branch in "${branch_chain[@]}"; do
ret=$(git branch --list $branch)
if [ -z "$ret" ]; then
echo "❗️Branch $branch not found."
exit 1
fi
done
# 后一个分支rebase到前一个分支上
for ((i = 1; i < ${#branch_chain[@]}; i++)); do
echo -n "* "
git checkout ${branch_chain[$i]}
git rebase --onto ${branch_chain[$i - 1]} HEAD~
if [ $? -ne 0 ]; then
echo
echo "❗️On ${branch_chain[$i]}: execute 'git rebase --onto ${branch_chain[$i - 1]} HEAD~' failed."
echo
exit 1
fi
echo
done
echo
echo "✨All branches have been rebased successfully."
echo
评论区