记录一些自己日常会使用的 git 命令,防止手生忘记。
1. 补充细小的提交到最近一个 commit
# 把更改添加到缓冲区
git add .
# 修改最近一个提交
git commit --amend
#### 或者 ####
# 撤销最近一次提交
git reset --soft HEAD^
# 再重新走普通提交流程
git add . && git commit
2. 不切换分支的情况下,rebase 远程公共分支
# 假设目前在 my-branch 分支开发,远程公共分支 develop 更新了
# git checkout my-branch
# 拉取远程的公共分支
git fetch origin develop
# rebase 到远程的公共分支
git rebase origin/develop
3. 根据远程分支创建本地分支
# 本地无 develop 分支,新建 develop 分支追踪远程的 develop 分支
git checkout -b develop origin/develop
4. stash 操作
# stash 当前的修改
git stash push -m "开发中xx功能"
# 查看 stash
git stash list
# 应用并删除 stash
git stash pop
# 删除某个 stash (编号在执行 list 命令的时候可以看到)
git stash drop stash@{0}
#### 或者 ####
#在 stack overflow 看到下面这种写法,之后有点想尝试一下
# save your working copy changes
git diff > some.patch
# re-apply it later
git apply some.patch
// 写于 2024.12.30
补充:2. 不切换分支的情况下,rebase 远程公共分支
因为嫌每次都要写两条命令很麻烦,所以写了个 shell 函数。方便 rebase 不同的远程分支。
# rebase 远程分支
rebase-origin() {
# 检查是否提供了一个参数
if [ -z "$1" ]; then
echo "用法: rebase-origin <分支名称>"
return 1
fi
local branch="$1"
# 执行 git fetch
git fetch origin "$branch"
if [ $? -ne 0 ]; then
echo "错误: git fetch origin '$branch' 失败。"
return 1
fi
# 执行 git rebase
git rebase origin/"$branch"
if [ $? -ne 0 ]; then
echo "错误: git rebase origin/'$branch' 失败。"
return 1
fi
echo "成功: 已成功更新并变基到 origin/$branch。"
}
// 更新于 2025.01.14