IDEA Git 菜单项功能汇总
IntelliJ IDEA Git 菜单项功能汇总
| 分组 | 菜单项 | 对应Git命令/概念 | 作用说明 |
|---|---|---|---|
| 核心提交与同步 | 提交... / 提交文件... | git commit |
打开提交窗口,将暂存区的更改保存到本地仓库;支持针对特定文件提交。 |
| 推送... | git push |
将本地已提交的代码上传到远程仓库。 | |
| 更新项目... | git pull (Fetch+Merge) |
IDEA 默认更新方式:从远程拉取最新代码并自动合并到当前分支。 | |
| 拉取... | git pull |
执行标准的拉取操作(可配置合并策略)。 | |
| 提取 | git fetch |
从远程获取最新元数据但不合并,用于查看远程状态而不影响本地代码。 | |
| 分支与版本管理 | 分支... | git branch |
打开分支管理面板,支持切换、删除、重命名及对比分支。 |
| 新建分支... | git checkout -b |
基于当前提交点创建一个新分支并立即切换过去。 | |
| 合并... | git merge |
将其他分支的代码合并入当前分支。 | |
| 变基... | git rebase |
将当前分支的修改“嫁接”到目标分支之后,保持提交历史线性整洁。 | |
| 重置 HEAD... | git reset |
回退版本指针,可选择保留工作区代码(软重置)或彻底丢弃(硬重置)。 | |
| 新建标记... / 放置标签 | git tag |
为当前提交打标签(如 v1.0),通常用于版本发布标记。 | |
| 显示 Git 日志 | git log |
打开图形化的 Git 历史记录窗口,查看提交详情树。 | |
| 显示历史记录 | git log -- <file> |
仅查看当前选中文件的历史修改记录。 | |
| 暂存、搁置与补丁 | 隐藏更改... / 取消隐藏... | git stash / pop |
Git 原生储藏功能,临时保存未提交修改,常用于切换分支前清理工作区。 |
| 搁置更改... / 取消搁置... | IDE Shelve | IDEA 特有功能,基于 Diff 实现,支持选择性搁置部分文件,重启 IDE 后依然有效。 | |
| 显示 Shelf / 显示 Git 隐藏 | IDE 功能 | 分别打开搁置列表和 Stash 列表,管理被临时保存的代码块。 | |
| 从本地更改创建补丁... | git diff > .patch |
将未提交的修改导出为 .patch 文件,便于通过邮件等方式传递代码。 |
|
| 应用补丁... / 从剪贴板应用 | git apply |
将外部 .patch 文件或剪贴板中的差异内容应用到当前代码中。 |
|
| 作为补丁复制到剪贴板 | IDE 功能 | 将代码差异文本直接复制,方便快速分享。 | |
| 文件操作与对比 | 添加 / 添加到 VCS | git add |
将文件加入暂存区,或将新文件纳入 Git 版本控制。 |
| 回滚... | git checkout/reset |
撤销工作区的修改,将文件恢复到上一个版本的状态(危险操作)。 | |
| 显示差异 / 在新标签页显示 | git diff |
对比当前文件与暂存区或 HEAD 的区别,支持在独立标签页查看。 | |
| 与修订/分支/标签比较 | git diff <commit> |
将当前文件与指定的历史提交、其他分支或标签版本进行对比。 | |
| 使用 Git 追溯注解 | git blame |
在编辑器侧边栏显示每一行代码的作者、提交时间和哈希值。 | |
| 将文件移动到另一个更改列表 | IDE Changelist | 将选中的文件移入其他自定义的更改列表(如从 Default 移到 Bugfix)。 | |
| 新建/删除/编辑更改列表 | IDE Changelist | 管理逻辑分组,用于隔离不同任务的代码变更。 | |
| 远程与其他操作 | 管理远程... | git remote |
添加、删除或修改远程仓库地址(如 origin 的 URL)。 |
| 克隆... | git clone |
从远程地址下载整个项目到本地。 | |
| GitLab / GitHub | IDE 集成插件 | 发起 Merge Request / Pull Request,或查看 Issues 等平台专属功能。 | |
| VCS 操作弹出窗口 | IDE 功能 | 呼出包含所有版本控制操作的完整侧边栏或弹窗。 | |
| 本地历史记录 | IDE Local History | 查看 IDE 自动记录的文件本地修改历史(非 Git 版本控制,用于紧急恢复)。 | |
| 刷新 | IDE 功能 | 强制重新扫描文件系统,更新文件状态以解决显示不同步问题。 |
说明:
- 去重处理:已合并历史轮次中重复出现的菜单项(如“提交”、“搁置”等),并统一了描述口径。
- 概念区分:特别区分了 Git 原生的
Stash(隐藏)与 IDEA 特有的Shelve(搁置),前者基于 Git 栈,后者基于 Diff 文件且更灵活。 - 分组逻辑:按照开发工作流的核心环节(提交同步、分支管理、临时保存、文件对比、远程交互)进行了逻辑分组,以便查阅。
Git Log 右键菜单功能汇总
| 分组 | 菜单项 | 对应Git命令/概念 | 作用说明 |
|---|---|---|---|
| 快捷操作与审查 | 复制修订号 | - | 复制当前选中的 Commit Hash(SHA-1值),方便在聊天或文档中引用。 |
| 创建补丁... | git format-patch |
将当前提交的更改生成为 .patch 文件,用于通过邮件或其他方式发送代码变更。 |
|
| 优选 | git cherry-pick |
将当前提交的更改“摘取”并应用到当前所在的分支上(常用于跨分支移植特定修复)。 | |
| 签出修订 | git checkout <commit> |
切换到该特定提交的状态(通常会导致“分离头指针”Detached HEAD状态),用于查看历史代码。 | |
| 在修订版中显示仓库 | - | 在项目文件树视图中,展示该提交时刻的文件目录结构和内容快照。 | |
| 与本地比较 | git diff |
对比当前选中的提交与本地工作区(Working Directory)的代码差异。 | |
| 回退与重置 | 将当前分支重置到此处... | git reset |
将当前分支的指针强制移动到选中的提交。可选择 Soft(保留更改)、Mixed(保留更改但不暂存)或 Hard(彻底丢弃更改)。 |
| 还原提交 | git revert |
创建一个新的提交来撤销选中提交的更改。这是一种安全的撤销方式,不改变历史记录,适合已推送到远程的提交。 | |
| 撤消提交... | - | IDEA 特有的安全回滚向导,尝试智能地回滚更改并解决潜在的冲突,比原生 revert 更人性化。 | |
| 历史整理 (Rebase) | 编辑提交消息... | git commit --amend / reword |
修改选中提交的注释信息(仅限最近一次提交,或在交互式变基中使用)。 |
| Fixup... | git commit --fixup |
标记当前提交为“修复”,在后续变基时自动将其合并到前一个提交中,并丢弃其提交消息。 | |
| 压缩到... | git commit --squash |
将当前提交的更改合并到指定的前序提交中,但保留提交消息供后续编辑。 | |
| 删除提交 | git rebase -i (drop) |
在交互式变基过程中,彻底丢弃选中的提交(慎用,会丢失代码)。 | |
| 压缩提交... | git rebase -i (squash) |
将选中的多个提交合并为一个提交。 | |
| 从这里进行交互式变基... | git rebase -i |
打开图形化的变基界面,允许你对从该提交开始的历史进行 reorder(重排)、edit(编辑)、drop(删除)等操作。 | |
| 推送与分支操作 | 推送此前所有提交... | git push |
如果本地有未推送的提交,此选项可快速将直到选中提交为止的所有内容推送到远程。 |
| 将 'master' 变基到所选提交 | git rebase <commit> |
将当前分支(如 master)的整体历史“嫁接”到选中的这个提交之后。 | |
| 新建分支... | git branch |
基于选中的这个历史提交点,创建一个新的分支(常用于从历史版本拉出修复分支)。 | |
| 新建标记... | git tag |
给选中的这个提交打上一个标签(Tag),通常用于版本发布。 | |
| 导航 | 转到子提交 | - | 在日志列表中跳转到当前提交的下一个提交(时间轴上的后一个)。 |
| 转到父提交 | - | 在日志列表中跳转到当前提交的上一个提交(即产生当前提交的基础版本)。 |
💡 重点提示
- 危险性操作:表格中“历史整理”分组下的操作(如删除、变基、重置)会修改 Git 历史记录。如果这些提交已经推送到公共远程仓库,执行这些操作后再次推送需要使用
Force Push,这可能会导致同事的代码冲突,请务必谨慎使用。 - 安全撤销:如果你想撤销一个已经推送的提交,请使用 “还原提交” (Revert),因为它会生成一个新的反向提交,不会破坏历史线性。
浙公网安备 33010602011771号