You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Git cherry-pick不提交且不将变更加入暂存区?

解决Git Cherry-Pick不提交也不进暂存区的问题

问得好!Git确实没有提供--no-stage这种直接的选项给cherry-pick,但我们有两种非常简洁的方式来实现你想要的效果——把指定提交的变更留在本地工作区,既不提交也不放进暂存区。

方法一:Cherry-Pick后一键重置暂存区

你可以把两条命令合并成一行,一次性完成操作:

git cherry-pick <hash> --no-commit && git reset
  • --no-commit(简写-n)会让Git把目标提交的变更应用到当前分支,但不会自动创建新提交,同时会把这些变更加入暂存区。
  • 紧接着的git reset不带任何参数时,会把所有暂存区的内容全部移回工作区,刚好达到你要的“仅在本地保留变更、不进暂存区也不提交”的状态。

方法二:直接应用补丁到工作区

如果你想全程不碰暂存区,一步到位,可以用补丁导出+应用的方式:

git diff <hash>^ <hash> | git apply -
  • git diff <hash>^ <hash>会生成目标提交与其父提交之间的差异补丁。
  • git apply -会把这个补丁直接应用到你的工作目录中,全程不会修改暂存区,也不会创建任何提交。

注意:如果目标提交是仓库的根提交(没有父提交),把<hash>^换成--root即可:

git diff --root <hash> | git apply -

内容的提问来源于stack exchange,提问作者Mayday

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:19:38