Git 教程(千字长文)
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;演示链接: http://116.62.199.48:7070 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 90w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 3100+ 小伙伴加入学习 ,欢迎点击围观
前言:为什么需要学习 Git 教程?
在软件开发的世界里,版本控制系统是开发者不可或缺的工具。Git 作为当前最流行的分布式版本控制系统,不仅能够帮助开发者高效管理代码变更,还能支持团队协作、回溯错误、维护代码历史记录。无论你是刚接触编程的初学者,还是有一定经验的中级开发者,掌握 Git 都能显著提升你的开发效率和代码质量。本文将通过循序渐进的方式,结合实际案例,带你系统学习 Git 的核心概念和实用技巧。
Git 的核心概念与工作流程
1. Git 的基本概念:仓库、快照与分支
- 仓库(Repository):可以理解为一个代码的“保险箱”,记录了所有文件的变更历史。
- 快照(Snapshot):每次提交(commit)会生成一个代码的“快照”,记录当前文件的状态。这就像用相机拍下某个时间点的代码状态,方便后续回溯。
- 分支(Branch):分支是 Git 的核心优势之一。你可以将分支想象为实验室中的不同实验环境——每个分支独立保存代码变更,互不干扰。例如,主分支(main)是稳定的生产环境,而开发分支(dev)可以自由尝试新功能。
2. Git 的工作流程:三阶段模型
Git 的工作流分为三个关键区域:
- 工作目录(Working Directory):开发者直接编辑代码的区域。
- 暂存区(Staging Area):临时保存已修改文件的区域,相当于提交前的“检查清单”。
- 版本库(Repository):最终保存所有提交记录的区域。
类比:你可以将这一流程想象为寄送包裹。工作目录是你的物品,暂存区是打包前的分类整理,版本库则是快递公司收到包裹并存档的仓库。
Git 基础命令详解
1. 初始化与配置
在开始使用 Git 之前,需要先安装 Git 并进行基础配置:
sudo apt-get install git
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
2. 创建与克隆仓库
- 创建本地仓库:
# 在当前目录初始化 Git 仓库 git init
- 克隆远程仓库(例如从 GitHub 克隆项目):
git clone https://github.com/username/repository.git
3. 添加与提交代码
- 添加文件到暂存区:
# 将所有修改添加到暂存区 git add . # 仅添加指定文件 git add filename.txt
- 提交快照到版本库:
# 提交代码并添加描述信息 git commit -m "Initial commit"
案例:假设你新建了一个 hello.py
文件,修改后执行 git add hello.py
和 git commit
,就完成了第一次提交。
分支管理与协作开发
1. 分支的创建与切换
分支是 Git 处理多版本开发的核心工具:
git checkout -b feature/login
git branch
git checkout main
2. 合并与解决冲突
当分支开发完成后,需要将代码合并到主分支:
git checkout main
git merge feature/login
冲突场景:如果两个分支修改了同一文件的同一行代码,Git 会标记冲突。此时需手动编辑文件,选择保留哪部分代码,再提交解决后的版本。
3. 分支协作的完整流程
- 从远程仓库拉取最新代码:
git pull origin main
- 创建分支开发新功能:
git checkout -b feature/new-feature
- 完成开发后提交到远程分支:
git push origin feature/new-feature
- 通过 Pull Request(PR)发起代码审查,合并到主分支。
进阶技巧与最佳实践
1. 撤销操作:回退与重置
- 回退到指定提交:
# 查看提交历史 git log # 回退到某次提交(不保留当前修改) git reset --hard <commit-id>
- 撤销暂存区的更改:
git restore --staged filename.txt
2. 标签管理:标记重要版本
为发布版本添加标签:
git tag v1.0.0
git push origin v1.0.0
3. 忽略文件:.gitignore 的使用
在项目根目录创建 .gitignore
文件,列出需要忽略的文件类型:
*.pyc
node_modules/
实战案例:从零到发布的完整流程
案例背景
假设你要开发一个简单的待办事项(Todo List)应用,并通过 GitHub 进行团队协作。
步骤 1:初始化仓库
mkdir todo-app
cd todo-app
git init
步骤 2:添加文件并提交
echo "# Todo App" > README.md
git add README.md
git commit -m "Add initial README"
步骤 3:创建远程仓库并关联
在 GitHub 上创建仓库后,执行:
git remote add origin https://github.com/username/todo-app.git
git branch -M main
git push -u origin main
步骤 4:分支开发新功能
git checkout -b feature/dark-mode
git add .
git commit -m "Implement dark mode"
git push origin feature/dark-mode
步骤 5:合并分支并发布
在 GitHub 提交 Pull Request,通过审查后合并到主分支,并发布版本标签:
git tag v1.0.0
git push origin v1.0.0
结论:持续学习与实践
通过本文的系统讲解,你已经掌握了 Git 的核心概念、基础命令和协作流程。但学习 Git 是一个持续的过程——随着项目复杂度的提升,你可能需要深入学习 git rebase
、git stash
、分支策略(如 Git Flow)等高级技巧。
建议读者通过实际项目不断练习,并尝试以下实践:
- 在个人项目中使用分支管理功能开发;
- 参与开源项目,体验 Pull Request 的协作流程;
- 定期查看
git reflog
,熟悉撤销操作的场景。
Git 是开发者工具链中不可或缺的一部分,掌握它不仅能提升个人效率,还能让你在团队中更加游刃有余。希望这篇教程能成为你 Git 学习旅程的坚实起点!