惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
博客园 - 三生石上(FineUI控件)
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MongoDB | Blog
MongoDB | Blog
小众软件
小众软件
Y
Y Combinator Blog
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
D
Docker
罗磊的独立博客
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net
B
Blog
Vercel News
Vercel News
Recent Announcements
Recent Announcements
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
T
The Blog of Author Tim Ferriss
H
Hackread – Cybersecurity News, Data Breaches, AI and More
P
Proofpoint News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Azure Blog
Microsoft Azure Blog
宝玉的分享
宝玉的分享

博客园 - smil、梵音

css渐变边框的实现 C primer Plus 第六版第4章节复习题5记录 C语言第4章末尾程序找错记录 css 的z-index的层级问题 由webai项目的 AI工作台 项目有感记录 C语言标准(C89/C90)中的32个关键字全列表 Windows 系统的 vscode 通过 Remote-SSH 连接虚拟机的 Ubuntu 系统运行 C 语言的代码 Windows 系统 vscode Remote-SSH 远程连接虚拟机里面的Ubuntu系统的失败处理 Ubuntu虚拟机里安装了SSH,开启SSH服务的时候报错 VS Code的Remote - SSH功能 Ubuntu系统里面安装 g++ ,sudo apt update 的含义 C语言是不是必须得通过gcc编译成可执行的程序? c语言用gcc编译过后,执行 ./hello.c 报错 ./hello.c: 权限不够 windows系统的虚拟机里面的Ubuntu系统安装VMware Tools Ubuntu的应用中心搜索 vscode 的时候,筛选条件为Snap包、debian包是什么意思,如何安装vscode Ubuntu系统是否就是Linux系统,安装软件和Windows系统有何区别 Ubuntu系统里面vscode运行C语言的第一个 Hello World 程序 vscode 中安装C/C++相关的插件 Ubuntu 安装一个轻量级的中文输入法Fcitx5 Ubuntu安装百度网盘 Ubuntu系统里面安装vscode 乌版图系统截屏快捷键 Ubuntu 系统里面运行C++ TortoiseGit 的安装与汉化 安装虚拟机+ ubuntu24.04 系统 联想小新安装 ubuntu24.04 双系统 | 安装乌版图系统 | windows安装 ubuntu24.04 双系统 利用faststone capture制作gif动图 Sublime Text 常用编辑快捷键速查表 vscode 中的 css 样式代码不显示折叠图标的解决方法 IDEA中git的Cherry-Pick的使用 IDEA中如何实现git的cherry-pick可视化操作?
IDEA中git的Cherry-Pick的可视化使用(个人总结)
smil、梵音 · 2026-04-01 · via 博客园 - smil、梵音

个人开发分支: zhengjintao-ppt-developV2.1

专门拉出来的用于测试的分支:zhengjintao-test

一、进入git log 界面。

可以通过顶部的 git ——> show git log 进入log界面

图片

 也可以通过对项目文件夹的名称右键操作进入:

图片

 二、执行 cherry-pick 操作

比如我想把我个人开发分支 zhengjintao-ppt-developV2.1 上的某一项提交 摘取 过来。

先筛选分支:

图片

 在这里,我筛选的是 Local 本地的分支 zhengjintao-ppt-developV2.1 ,实际开发中,一般是摘取远程某个分支的代码改动,这里就可以选择 origin 远程的某个分支。

User 最好筛选 me ,只看自己提交的代码改动。

筛选自己需要摘取的改动:

图片

 在这里,而已挑选摘取哪些改动,可以按 Ctrl 键选择多个,也可以选择一个之后按 Shift 键选择连续的多个。然后右键,选择 Cherry-Pick 即可。

待补充:至于摘取之后,可能还需要提交到远程,自己可以在 Terminal 终端中通过 git status 命令查看当前代码状态。

拓展: 压缩多个提交

如果我个人分支的某个需求开发了一两个月, 提交了几十次,最后合并到开发分支的时候,可能我都忘了都哪些是本次需要上线的需求改动和提交,这时候我可以把之前的几十次的提交压缩成一次提交,到时候我切换开发分支,摘取我个人分支的时候,只用摘取压缩后的那一次提交即可。

下面举例说明:

比如我选择了整个三月份的提交记录,压缩成一次提交的话,就选中整个三月份的提交记录,右键,然后选择 Squash Commits :

图片

点击 Squash Commits ,然后显示如下界面:

图片

 这里面是需要填写压缩提交的信息,比如我填写:压缩的3月份的提交,然后点击 OK 按钮:

图片

 等待压缩:

图片

 压缩完成后,历史记录中会显示一条新的提交记录,然后整个之前被压缩的3月份的提交记录就都没有了:

图片

 如果想撤销压缩,点击右下角的 Event Log,展开信息后,点击  Undo ,即可取消压缩。

图片

以上可以针对个人开发分支的某个需求的多次提交进行压缩,到时候切换到上线分支,摘取个人分支的时候,只摘取压缩后的一个提交即可。

拓展:取消Cherry-Pick

针对某个分支摘取的时候,如果发现出现需要merge的状态, merge 的过程中发现合并错了代码,如何取消。

下面先一步步的介绍。

我目前处于 test 的测试分支,我想摘取我个人开发分支的某一个提交,然后出现了代码冲突,就会出现以下的界面,我选择 Merge 进行代码融合。

图片

 点击 Merge 按钮之后:

图片

 我一开始就是没有搞明白,左右两边的代码各是哪里的,导致我合代码合到一半发现错了,代码没有完全合完,我就直接关闭了上面的弹框。

关闭弹框后,会出现以下界面,右下角不再显示 test分支了,显示的是Cherry-picking in test ,说明摘取没有完成:

图片

 此时怎么回退到没有摘取之前的代码状态呢?有两个方法。

方法一:

点击顶部菜单栏 Git → 找到 Abort Cherry-Pick 选项

点击后,IDEA 会自动回滚所有因 Cherry-Pick 产生的临时改动和冲突标记,你的测试分支会恢复到执行操作前的干净状态。

图片

 方法二:

1、在 IDEA 底部打开 Terminal 终端(或直接使用系统命令行)。

2、确保当前目录是你的项目根目录(也就是包含 .git 文件夹的地方)。

3、输入以下命令并回车:

这条命令会立即:
    - 取消正在进行的 Cherry-Pick 操作
    - 清空所有因冲突产生的临时文件
    - 将你的测试分支完全恢复到 Cherry-Pick 之前的状态

执行完后,用 git status 查看,应该会显示 working tree clean,文件冲突就彻底解决了

图片

在这里我采用方法二试一下(方法一我已经操作过了,没问题),方法二的命令执行完毕之后就正常了:

图片

 此时代码已经回到了没有摘取之前的状态了。