当前位置: 首页 > news >正文

Git 从入门到实战——开发必备的版本控制技能

Git 是每个开发者必须掌握的技能。无论你是独立开发还是团队协作,Git 都能帮你管理代码版本、回溯历史、协同工作。本文从零开始,带你掌握 Git 的核心操作。

一、Git 的核心概念

概念说明
工作区你写代码的目录
暂存区临时存放改动的地方
本地仓库存放在本地的版本历史
远程仓库存放在服务器的版本(GitHub/Gitee)
工作区 → git add → 暂存区 → git commit → 本地仓库 → git push → 远程仓库

二、基础操作

1. 配置用户信息

gitconfig--globaluser.name"张老师技术栈"gitconfig--globaluser.email"zhang@example.com"gitconfig--global--list# 查看配置

2. 初始化仓库

# 方式一:创建新仓库cdmy-projectgitinit# 方式二:克隆远程仓库gitclone https://github.com/username/repo.git

3. 日常开发三连

# 第一步:查看状态gitstatus# 第二步:添加到暂存区gitadd文件名# 添加指定文件gitadd.# 添加所有改动# 第三步:提交到本地仓库gitcommit-m"feat: 添加用户登录功能"

三、分支管理

分支是 Git 最强大的功能之一,让你可以并行开发多个功能。

1. 分支操作

# 查看分支gitbranch# 本地分支gitbranch-a# 所有分支(含远程)# 创建和切换gitbranch feature-login# 创建分支gitcheckout feature-login# 切换分支gitcheckout-bfeature-login# 创建并切换(一步到位)# 合并分支gitcheckout main# 先切回主分支gitmerge feature-login# 合并功能分支# 删除分支gitbranch-dfeature-login# 删除本地分支gitpush origin--deletefeature-login# 删除远程分支

2. 常用分支策略

main# 主分支(稳定版本)├── dev# 开发分支(日常开发)│ ├── feat-login# 功能分支│ ├── feat-pay# 功能分支│ └── fix-bug-101# 修复分支└── release# 发布分支

推荐命名规范:

feat/xxx # 新功能 fix/xxx # 修复bug docs/xxx # 文档 refactor/xxx # 重构

四、远程仓库操作

1. 关联远程仓库

# 添加远程仓库gitremoteaddorigin https://github.com/username/repo.git# 查看远程仓库gitremote-v# 推送到远程gitpush-uorigin main# -u 是 --set-upstream,第一次推送用gitpush# 之后直接用# 拉取远程更新gitpull# 拉取并合并(推荐)gitfetch# 只拉取不合并

2. 解决冲突

当两个人修改了同一个文件的同一行代码时,git 无法自动合并:

# 拉取代码时提示冲突gitpull# 输出:Automatic merge failed; fix conflicts and commit the result.# 打开冲突文件,会看到:<<<<<<<HEAD System.out.println("当前分支的代码");=======System.out.println("远程分支的代码");>>>>>>>main# 手动修改后保存,然后提交gitadd.gitcommit-m"fix: 解决合并冲突"

五、时光穿梭——版本回退

# 查看提交历史gitlog# 完整历史gitlog--oneline# 一行显示gitlog--graph--oneline# 图形化显示# 回退到指定版本gitreset--hardHEAD^# 回退到上一个版本gitreset--hardHEAD~3# 回退到前3个版本gitreset--hard7a3e4f1# 回退到指定 commit ID# 后悔了?找回版本gitreflog# 查看所有操作记录gitreset--hard6b8d2e3# 恢复到指定版本

六、实用技巧

1. 暂存当前工作

# 当你正在开发一半,需要切换到其他分支时gitstash# 暂存当前改动gitstash list# 查看暂存列表gitstash pop# 恢复暂存并删除gitstash apply# 恢复暂存但不删除

2. 忽略文件(.gitignore)

# 在项目根目录创建 .gitignore 文件# 内容示例:target/ *.class *.jar .idea/ *.iml *.log node_modules/ .env application-local.yml

3. 修改最后一条 commit

# 漏了文件或写错了注释gitaddforgotten-file.javagitcommit--amend-m"新的提交信息"# 注意:只能修改未推送的 commit

4. 挑选指定 commit

# 只合并某个分支的某一次提交gitcherry-pick 7a3e4f1

七、IDEA 中使用 Git

IDEA 集成了完整的 Git 操作,不需要记命令:

操作快捷键 / 位置
提交Ctrl + K
推送Ctrl + Shift + K
更新项目Ctrl + T
查看历史右键文件 → Git → Show History
解决冲突Merge 按钮(冲突时出现)

八、企业级 Git 工作流

# 1. 从 main 分支创建功能分支gitcheckout-bfeat-user-login main# 2. 开发并提交gitadd.gitcommit-m"feat: 实现用户登录功能"# 3. 拉取最新 main 代码,解决冲突gitpull origin main# 4. 推送功能分支到远程gitpush origin feat-user-login# 5. 在 GitHub/GitLab 上创建 Pull Request# 等 reviewer 审核通过后合并到 main

总结

Git 的核心就这几条命令,建议收藏:

# 日常用gitstatus# 看状态gitadd.# 添加gitcommit-m""# 提交gitpush# 推送gitpull# 拉取# 分支用gitcheckout-bname# 建分支gitmerge name# 合并# 应急用gitstash# 暂存gitlog# 看历史gitreset# 回退

如果对你有帮助,欢迎点赞、评论、关注【张老师技术栈】,持续分享 Java/Python/爬虫 实战干货。

http://www.jsqmd.com/news/1045571/

相关文章:

  • 2026年更新:两江新区全英文幼稚园新址揭晓,开启沉浸式双语教育新篇章 - 品牌鉴赏官2026
  • 深入解析MCU时钟与复位系统:PLL、看门狗与低功耗模式实战
  • Educational Codeforces Round 158 (Rated for Div. 2)D
  • 影刀RPA异常处理实战:Try-Catch正确用法
  • 麦克纳姆轮运动学模型:从原理到代码实现全向移动机器人底盘控制
  • Taurus性能测试平台:超越JMeter的自动化编排与CI/CD集成实践
  • 终极流媒体解析指南:猫抓cat-catch如何轻松突破MPD/DASH格式壁垒
  • 第四周总结
  • 2026年中河北地区民政救灾帐篷实力厂家深度解析与推荐 - 品牌鉴赏官2026
  • P值、置信度与统计决策:如何避免显著性检验的常见陷阱
  • 2026百色2026正规漏水检测维修公司精选口碑榜TOP5权威推荐-精准定位检测漏水点-专业防水补漏堵漏维修、卫生间/厨房/屋顶/天沟/地下室/阳台防水漏水检测维修 - 安佳防水
  • 一梦入盛唐,一醉下江南:淘宝直播×汾酒「汾享江南游园会」圆满收官
  • 青岛十家猫犬舍实测:3000㎡合规基地领跑,伴西西成养宠优选​ - 同城宠物优选基地
  • 深入解析MC68HC908AS32A的SCI模块:从异步通信原理到寄存器实战配置
  • 2026青岛城阳区专业的空调移机公司口碑推荐 - 品牌排行榜
  • 服务品质维度|2026北京陪诊机构服务体验TOP4 精细化口碑深度排行 - 深鉴新闻
  • Mi-Create终极指南:如何免费为小米穿戴设备打造个性化表盘
  • 你的微信聊天记录,正在悄悄消失吗?用这个工具永久保存珍贵记忆
  • 如何快速掌握R3nzSkin国服特供版:3个简单步骤实现英雄联盟免费换肤
  • AJ-Captcha终极指南:5分钟快速集成行为验证码,保护你的应用安全
  • 深入解析S12Z BDC SYNC命令与串行协议:嵌入式调试的核心机制
  • QuickRecorder:如何在macOS上实现专业级屏幕录制体验
  • 深入解析MC68HC908AZ32A指令集与SIM模块:从Opcode到系统协调
  • 2026湛江本地人必选防水补漏检测维修公司靠谱服务商TOP5推荐:房屋渗漏水检测维修/卫生间/厨房/天花板/阳台/外墙渗漏水检测补漏维修-暗管漏水检测专业仪器精准定位漏水点 - 即刻修防水
  • Qwen3.6-35B-A3B-Uncensored-Wasserstein-GGUF:通过数值修复技术提升模型性能的实践指南
  • 【计算机毕业设计案例】基于 Python 的老人日常健康监测与追踪系统设计 养老院健康数据采集与跟踪管理系统(程序+文档+讲解+定制)
  • 四款新开源图像生成模型硬核实测与选型指南
  • Bili.UWP终极指南:Windows 11上最高效的B站客户端使用方案
  • 从3天到10分钟:OpCore-Simplify如何让黑苹果配置变得简单高效
  • 2026寄大件怎么便宜?个人快递折扣渠道实测对比 - 快递物流资讯