前言
在软件开发中,版本控制是我们不可或缺的技能。无论是个人项目的历史追踪,还是团队成员的多人协作,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,直接提交已跟踪文件的修改。bashgit commit -a -m 'Modify first' -
图形化查看提交历史 :使用以下命令可以清晰地查看本地与远程分支的提交结构。
bashgit log --all --oneline --graph -
绑定远程分支 (Set Upstream) :每次推送都写完整的远程分支名很繁琐,可以使用
--set-upstream将本地分支与远程分支绑定。bashgit push --set-upstream origin master:master绑定后,之后再有新的提交(例如新增了
test.txt),只需要简单执行git push或git 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 版本控制!


