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

推荐订阅源

Google Online Security Blog
Google Online Security Blog
博客园_首页
酷 壳 – CoolShell
酷 壳 – CoolShell
Jina AI
Jina AI
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
博客园 - 司徒正美
V
V2EX
雷峰网
雷峰网
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
F
Full Disclosure
Y
Y Combinator Blog
V
V2EX - 技术
Attack and Defense Labs
Attack and Defense Labs
S
Security @ Cisco Blogs
Schneier on Security
Schneier on Security
Microsoft Azure Blog
Microsoft Azure Blog
SecWiki News
SecWiki News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The GitHub Blog
The GitHub Blog
量子位
PCI Perspectives
PCI Perspectives
S
Secure Thoughts
D
Darknet – Hacking Tools, Hacker News & Cyber Security
AWS News Blog
AWS News Blog
Blog — PlanetScale
Blog — PlanetScale
爱范儿
爱范儿
K
Kaspersky official blog
B
Blog
A
Arctic Wolf
Hacker News: Ask HN
Hacker News: Ask HN
L
LangChain Blog
T
Tor Project blog
P
Privacy & Cybersecurity Law Blog
Recent Announcements
Recent Announcements
宝玉的分享
宝玉的分享
The Register - Security
The Register - Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
L
Lohrmann on Cybersecurity
D
Docker
A
About on SuperTechFans
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google DeepMind News
Google DeepMind News
The Last Watchdog
The Last Watchdog
S
Security Affairs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy International News Feed
Simon Willison's Weblog
Simon Willison's Weblog

博客园 - smil、梵音

TortoiseGit 的安装与汉化 安装虚拟机+ ubuntu24.04 系统 联想小新安装 ubuntu24.04 双系统 | 安装乌版图系统 | windows安装 ubuntu24.04 双系统 利用faststone capture制作gif动图 Sublime Text 常用编辑快捷键速查表 vscode 中的 css 样式代码不显示折叠图标的解决方法 IDEA中git的Cherry-Pick的使用 IDEA中如何实现git的cherry-pick可视化操作? Windows11添加系统环境变量 VS Code——Live Server的简介、安装与使用 vue3中 pinia 的运用 vscode使用region折叠任意想折叠的代码块 我本地分支代码推送到远程的另一个分支,怎么操作? idea中打开多文件编辑器换行展示 本地代码强制覆盖远程代码,本地代码强制和远程某一个分支保持一致,再覆盖远程代码 css头部固定,内容区域高度自适应剩余的屏幕高度,内容区域过多显示竖向滚动条 flex为1的元素宽度自适应的同时,文本太长的时候显示省略号 idea中项目文件目录消失如何解决 vue3插入图片 vue3使用构建工具时,关于本地图片的引用 vue3 中父组件调用子组件的方法,子组件是不是必须暴露方法 如何改变type="checkbox"的input复选框的样式 vue3中非父子组件、非祖先-后代组件之间传递方法 解决 IntelliJ IDEA 中项目右键没有 Git 菜单的问题 关于 ref 为 DOM 元素或子组件实例动态创建引用的总结 Git 合并时出现 Please enter a commit message to explain why this merge is necessary 问题解决 拉取远程其他分支的最新代码 - smil、梵音
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,文件冲突就彻底解决了

图片

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

图片

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