少于 1 分钟阅读 次阅读

git cherry-pick -ngit cherry-pick --no-commit 就行。这是 Git 官方支持的参数,含义是:把目标提交引入的改动应用到工作区 + 暂存区(index),但不自动生成新提交

基本用法

# 单个提交,应用但不提交
git cherry-pick -n <commit-hash>

# 多个提交,效果累积到暂存区,最后合成一个提交
git cherry-pick -n <commit-A> <commit-B> <commit-C>
# 或范围(含 A 和 C)
git cherry-pick -n A^..C

后续两种收尾

  • 满意了,手动提交

    git commit -m "Backport fix from <original-hash>"
    

    想保留溯源线索可改用普通 git cherry-pick -x,但那就不是“不提交”流程了。

  • 不想拿了,回滚

    git cherry-pick --abort        # 官方中止,回到命令前状态
    # 或已 -n 应用完了又反悔:
    git reset --hard HEAD          # 注意会丢掉所有未提交改动
    git checkout -- <file>         # 只丢弃某个文件
    

留下评论