目 录CONTENT

文章目录

Git

TalentQ
2025-06-20 / 0 评论 / 0 点赞 / 22 阅读 / 0 字

git 常用指令积累

Command

Description

git show --raw

查看当前提交中的修改的文件名

git checkout HEAD~1 -- FILE_NAME

撤销对某个已经commit的文件的更改

git checkout -b BRANCH_NAME

git branch --set-upstream-to=origin/dev BRANCH_NAME

创建分支,并与远程建立关联

git rebase --onto PRE_BRANCH HEAD~

将当前分支rebase到PRE_BRANCH分支上

便捷的命令行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

0

评论区