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

git cherry命令中前缀"+"与"-"的含义是什么?

理解git cherry中的"+"和"-"前缀

先明确git cherry的核心用途:帮你对比当前分支(或指定的head范围)和上游分支(<upstream>),找出哪些提交已经在上游有等效内容,哪些还没有。

前缀含义拆解

  • - 前缀:这个提交的代码变更内容,已经在<upstream>分支里存在完全等效的提交了。
    这里的「等效」不是指提交SHA1相同——毕竟你可能用git cherry-pick复制提交,或者变基后提交SHA1变了,但代码改动是一样的。Git是通过对比提交的补丁内容(也就是git diff的结果)来判断的,只要内容一致,就会标-。
  • + 前缀:这个提交的代码变更,在<upstream>分支里找不到任何内容完全匹配的提交,属于当前分支独有的改动,还没被合并或复制到上游。

实际场景例子

比如你在feature/login分支开发,上游是main分支:

  1. 你在feature/login提交了三个改动:A(修复输入框样式)、B(添加验证码逻辑)、C(优化登录提示)
  2. 后来把B提交用git cherry-pick复制到了main分支上线
  3. 运行git cherry main,输出会是:
    + a1b2c3d 修复输入框样式
    - d4e5f6g 添加验证码逻辑
    + g7h8i9j 优化登录提示
    
    这里B标了-,因为它的改动已经在main里了;A和C标+,说明这两个改动还没同步到上游。

补充说明

git cherry默认对比的是limit..head范围(默认limit为上游分支,head为当前分支最新提交),你也可以手动指定范围,比如git cherry main v1.0,就是对比v1.0标签之后到当前HEAD的提交和main分支的差异。

内容的提问来源于stack exchange,提问作者Skörven

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:20:58