IDEA常用git操作

前言

在软件开发中,版本控制是我们不可或缺的技能。无论是个人项目的历史追踪,还是团队成员的多人协作,Git 都是目前最强大的工具。本文将结合日常开发场景,详细记录如何在 IntelliJ IDEA 中进行可视化版本控制,以及如何通过 Git 命令行与远程 GitHub 仓库进行深度交互。


IDEA 中的可视化 Git 操作

对于很多日常开发任务,直接在 IDEA 中进行版本控制操作会更加直观和高效。

1. 初步提交与状态识别

初步创建仓库

在 IDEA 中初始化 Git 仓库后,文件颜色的变化能直观反映文件状态:

  • 绿色:表示新建的、已加入暂存区但尚未提交的文件。
  • 蓝色:表示已被 Git 追踪,且内容发生修改的文件。

修改文件后,点击顶部菜单栏或工具栏的"提交"按钮,即可将更改保存到本地仓库。

点击提交之后绿色的表示新建,蓝色的表示修改

修改内容并刷新:

提交:

2. 代码回滚 (Rollback)

如果发现代码改错了想要恢复,IDEA 提供了方便的回滚功能。在修改的文件上右键,选择"回滚"(Rollback),即可撤销当前的更改,恢复到上一次提交的状态。

IDEA提示回滚成功

3. 分支操作:新建与切换

分支是并行开发的核心。

  • 新建分支 :在 IDEA 右下角的分支管理面板,可以轻松创建新分支(例如 test 分支)。

    填写新建分支信息:

    查看当前所属分支:

  • 切换分支(Checkout) :创建后,可以一键切换。切换成功后,面板右下角的标签符号会显示当前处于 test 分支下。

    签出分支:

    标签符号就跑到了test分支下:

test 分支下新增内容并提交,这些更改将独立存在于该分支中。同时,我们也可以切回 master 分支,新建其他的模块(如 Controller 目录及文件)并独立提交。

Test分支下新建一些内容:

提交新增内容到Test分支中:

提交成功:

同样步骤在master分支下新建一个controller文件夹,并在该文件夹下新建一个Maincontroller文件,之后再提交。

4. 合并 (Merge) 与变基 (Rebase)

当功能开发完成后,需要将分支代码整合。

  • 合并分支 (Merge) :在 master 分支下,选择将 test 分支合并进来。

(注:如果合并后想反悔,可以直接在 Git 历史记录中右键选择重置/Reset 撤销合并。)

将test合并到master分支上:

合并成功:

撤销刚才的合并操作,直接点重置:

  • 变基分支 (Rebase) :与 Merge 不同,变基会让提交历史更加线性。简单来说,在 test 分支上执行变基到 master,就是把 master 的新更改"垫在"自己的更改之下("把别人的东西给我")。

通俗来讲变基分支下,master是基于test开始。迁出就是把自家东西给别人,变基就是把别人的东西给我

5. 优选 (Cherry-Pick)

如果我们只需要某个分支上的特定提交,而不是整个分支的内容,就可以使用优选功能。

例如,在 test 分支下多次提交了不同的文件。切回 master 分支后,如果只想要 test 分支中的 Maincontroller 的相关提交,只需在 Git 历史中找到那次提交,点击"优选"(Cherry-Pick)即可将其应用到当前分支。

在test分支下新建Mainconfig和Maincontroller文件,每新建一次就提交一次。

在master分支下修改pom文件,并提交:

若想将test分支下的controller文件添加至master分支下,可点击优选:

成功过来:


Git 远程仓库与命令行

理解了本地操作,下一步就是将代码推送到远程服务器进行托管和协作。公有远程仓库有 GitHub、Gitee 等,企业内部通常使用 GitLab。本节以 GitHub 为例。

1. 概念基础

远程仓库实际上就是位于服务器上的仓库,它能在远端保存版本历史。不仅实现了代码云端备份,更是多人协作的基石。每个人都可以拉取他人的代码,或推送自己的更新。

2. 本地仓库关联与推送流程

以下是我们通过命令行进行完整项目初始化、关联和推送的全过程:

第一步:初始化与本地提交

在项目根目录下(如 D:/Testgit),执行以下命令初始化仓库,并将文件提交到本地。

bash 复制代码
git init
git add hello.txt
git commit -m 'Initial commit'

第二步:关联远程仓库

首先在 GitHub 上创建一个新的空仓库,然后将本地仓库与远程地址(通常命名为 origin)关联起来。

bash 复制代码
git remote add origin https://github.com/Jianglin-max/StudyGit.git

第三步:推送到远程仓库

将本地的 master 分支推送到远程的 master 分支。

bash 复制代码
git push origin master

提示:如果是首次推送,GitHub 可能会要求验证身份。现在通常使用 Personal Access Token (PAT) 或 SSH 密钥进行验证。

3. 命令行高效操作技巧

  • 快速提交修改 :使用 -a 参数可以跳过 git add,直接提交已跟踪文件的修改。

    bash 复制代码
    git commit -a -m 'Modify first'
  • 图形化查看提交历史 :使用以下命令可以清晰地查看本地与远程分支的提交结构。

    bash 复制代码
    git log --all --oneline --graph
  • 绑定远程分支 (Set Upstream) :每次推送都写完整的远程分支名很繁琐,可以使用 --set-upstream 将本地分支与远程分支绑定。

    bash 复制代码
    git push --set-upstream origin master:master

    绑定后,之后再有新的提交(例如新增了 test.txt),只需要简单执行 git pushgit push origin 即可完成同步。

4. 多人协作核心:克隆项目 (Clone)

当项目已经在远程仓库存在,而你需要在新电脑上继续开发,或者参与他人的开源项目时,就需要用到克隆操作:

bash 复制代码
git clone 远程仓库地址

例如克隆到 StudyGitClone 目录下。在这个新克隆的目录中修改代码并提交后,依然可以直接使用 git push origin 推送回远程仓库,实现多人协同开发。

bash 复制代码
# 在克隆的仓库中修改并推送
git commit -a -m 'Modify by B'
git push origin

结语

无论是依托 IDEA 强大的图形化界面提升日常开发效率,还是掌握 Git 命令行处理复杂的底层逻辑,这两种方式相辅相成。希望这篇笔记能帮你更扎实地掌握 Git 版本控制!

相关推荐
爱丽_2 小时前
G1 深入:Region、Remembered Set、三色标记与“可预测停顿”
java·数据库·算法
她说彩礼65万2 小时前
C语言 Static的用法
java·linux·c语言
spencer_tseng2 小时前
java.lang.ClassNotFoundException: org.slf4j.Logger
java·spring·maven
放下华子我只抽RuiKe52 小时前
从零开源:如何将自定义 AI Skill 发布到 GitHub
人工智能·机器学习·开源·github·集成学习·skills·openclaw
小江的记录本2 小时前
【VO、DTO、Entity】VO、DTO、Entity三大核心数据对象全解析(附核心对比表 + 代码示例)
java·数据库·spring boot·spring·架构·mybatis·数据库架构
无籽西瓜a2 小时前
TCP三次握手与四次挥手详解含图解
java·服务器·网络·tcp/ip
晨陌y2 小时前
Maven完整配置教程:从零基础到实战,新手零踩坑
java·maven
SuniaWang2 小时前
《Spring AI + 大模型全栈实战》学习手册系列·专题一:《RAG技术全景解析:从原理到架构设计》
java·javascript·人工智能·spring boot·后端·spring·架构
java1234_小锋2 小时前
Java高频面试题:Spring是如何解决Bean的循环依赖?
java·开发语言·spring