01 引言
在上一期内容中,我们利用 IntelliJ IDEA 完成了 Git 仓库的初始化、基础配置以及首次代码提交,成功迈出了使用 Git 的第一步。然而,在实际开发流程中,仅掌握这些入门命令远远无法满足日常需求。
本期将聚焦于 Git 在真实开发场景中的核心应用,通过一系列实战操作,帮助你熟练应对分支管理、代码冲突处理、版本回退与分支合并等常见挑战。
02 Git 分支管理:协同开发的关键支撑
在团队协作环境中,通常不会直接在主干分支上进行开发。为了保障代码库的稳定性与整洁性,创建独立的功能或修复分支已成为标准实践。
2.1 创建与切换分支
在 IDEA 中,可以通过界面右下角的 Git 分支弹出窗口快速创建新分支。
对应的命令行操作如下:
bash
# 基于远程主分支(如 main)创建并切换到新分支
git checkout -b dev-20250520 origin/main
# 若分支已存在,则只需执行切换操作
git checkout dev-20250520
查看当前分支状态:
bash
git branch # 查看本地分支
git branch -r # 查看远程分支
git branch -a # 查看所有分支(本地 + 远程)
2.2 在分支上进行开发和提交
完成代码编写后,可将其提交至本地仓库。IntelliJ IDEA 的版本控制面板会清晰展示所有变更文件,也可通过以下命令手动查看变更情况:
git status
2.3 推送分支至远程仓库
首次推送本地分支时,需建立上游跟踪关系:
bash
git push -u origin dev-20250520
此后,在该分支上的后续推送只需执行简单命令即可:
git push
推送成功后,可在 GitHub 仓库页面看到新创建的分支信息。
03 冲突处理:团队协作中不可避免的环节
当多个开发者同时修改同一文件的相同区域时,Git 将检测到冲突并阻止自动合并。
3.1 模拟冲突场景
步骤一:直接在 GitHub 上编辑某个文件并提交更改。
GitTest.java
步骤二:在本地对同一个文件的相同部分进行修改,提交后尝试推送。
此时 Git 会拒绝推送,并提示存在历史分叉,需要先拉取并解决冲突。
3.2 解决冲突
首先运行以下命令获取远程更新:
git pull
Git 会自动标记出冲突文件中的冲突段落。
IDEA 提供了直观的三窗格合并工具:
- 左侧:本地修改版本
- 右侧:远程传入版本
- 中间:最终合并结果
通过点击箭头按钮,可以选择保留某一方的更改,或手动编辑整合内容。确认所有冲突均已解决后,保存文件。
将解决后的文件重新加入暂存区并提交:
可通过 IDEA 的 Git 日志功能或以下命令查看包含此次合并提交的历史记录:
git log
最后,执行推送操作,将修复后的代码同步至远程仓库:
git push
04 代码回滚:掌控项目的“时间机器”
版本控制系统的一大优势在于其强大的回滚能力,使开发者能够在必要时恢复到之前的稳定状态。
接下来通过在不同版本之间切换的操作来演示该功能。
情况一:回滚尚未推送的本地提交
使用如下命令可重置本地提交历史:
git reset
bash
# 使用 --hard 参数会彻底丢弃目标版本之后的所有更改,请谨慎操作
git reset --hard <目标版本号>
情况二:回滚已推送到远程的提交
对于已经共享的提交,应采用更安全的方式进行撤销:
git revert
bash
git revert <目标版本号>
此命令会生成一个新的提交,用于抵消指定版本的更改,避免改写公共历史。
若被撤销的更改与当前代码存在冲突,需先手动解决冲突,再完成提交流程。
05 合并分支:实现功能集成与发布
当功能开发完成后,需要将特性分支的内容合并回主分支以完成集成。
切换回主分支
确保当前处于目标分支(例如 main):
main
bash
git checkout main
拉取最新代码
在合并前,建议先同步远程主分支的最新状态:
bash
git pull origin main
执行合并操作
将开发分支合并到当前所在分支:
bash
git merge dev-20250520
处理可能出现的合并冲突
如果系统提示存在冲突,处理方式与第 3 节所述一致,需逐一解决并提交结果。
推送更新后的主分支
完成合并及冲突解决后,将稳定的主分支推送至远程:
bash
git push origin main
06 总结
本次内容系统地模拟并演练了 Git 在日常开发中的关键工作流,涵盖分支管理策略、冲突解决方案、版本回退机制以及代码合并流程。
熟练掌握上述操作,不仅能显著提升个人开发效率,也能增强在团队协作环境下的适应能力与可靠性。
Git 拥有丰富的命令体系,欢迎分享你在实践中最常用或最具创意的使用技巧,共同学习进步。


雷达卡


京公网安备 11010802022788号







