记一些贼好用的 git 命令

84 阅读1分钟

记录一些自己日常会使用的 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