前言 DeepSeek 老师生成的 Git 笔记,根据实际使用修改和补充。
🔍 Git 是什么? Git 是一个分布式版本控制系统,由 Linus Torvalds(Linux 内核的创建者)于 2005 年开发。Git 让开发者能够跟踪代码变化、协作开发,并在需要时恢复到之前的版本。
📊 Git 工作流 graph LR
WD["工作区<br/>Working Directory"]
SA["暂存区<br/>Staging Area"]
LR["本地仓库<br/>Local Repository"]
RR["远程仓库<br/>Remote Repository"]
WD -->|git add| SA
SA -->|git commit| LR
LR -->|git push| RR
RR -->|git pull| WD
RR -->|git fetch| LR
LR -->|git checkout| WD
🌿 分支管理图解 gitGraph
commit
commit
branch feature
checkout feature
commit
commit
checkout main
merge feature
commit
branch hotfix
checkout hotfix
commit
checkout main
merge hotfix
commit
📂 仓库操作 初始化仓库
克隆远程仓库 1 git clone https://github.com/username/repo.git
📦 提交管理 添加文件到暂存区 1 2 git add . # 添加所有文件 git add main.py # 添加指定文件
提交更改
查看状态
查看提交历史 1 2 git log # 完整历史 git log --oneline # 简洁版历史
⏪ 版本控制 撤销工作区修改
版本回退 1 2 git reset --hard abc123 # 彻底回退到指定提交 git checkout abc123 # 临时查看历史版本
警告 :reset --hard
会丢失未提交的更改!
🌿 分支管理 创建分支 1 2 git branch feature # 创建分支 git checkout -b feature # 创建并切换
切换分支
合并分支 1 2 git checkout main git merge feature
删除分支
☁️ 远程协作 关联远程仓库 1 git remote add origin https://github.com/username/repo.git
查看远程仓库
推送代码
拉取更新
🔍 差异比较 1 2 3 git diff # 工作区 vs 暂存区 git diff --cached # 暂存区 vs 最新提交 git diff HEAD # 工作区 vs 最新提交
⚙️ 配置相关 用户配置 1 2 git config --global user.name "Your Name" git config --global user.email "email@example.com"
行尾符配置 1 2 3 git config --global core.autocrlf true # Windows git config --global core.autocrlf input # Linux/macOS git config --global core.autocrlf false # 禁用
🙈 忽略文件 在项目根目录创建 .gitignore
文件:
1 2 3 4 5 6 7 8 9 10 11 *.class *.exe node_modules/ vendor/ .DS_Store Thumbs.db
💡 使用技巧
使用 git commit -am "消息"
可跳过暂存直接提交已跟踪文件
git reflog
可查看所有操作历史(包括被 reset 的提交)
使用 git fetch
+ git merge
代替 git pull
更安全
🔄 常见工作流程 基本工作流 graph TB
拉取最新代码[git pull]
创建分支[git chechout -b feature-x]
修改提交[git add. & git commit -m 'feature: xxx']
推送分支[git push origin feature-x]
拉取最新代码-->创建分支-->修改提交
修改提交-->推送分支
拉取最新代码:git pull origin main
创建功能分支:git checkout -b feature-x
修改代码并提交:git add .
→ git commit -m "实现功能 X"
推送分支:git push origin feature-x
合并到主分支:在 GitHub/GitLab 创建 Pull Request
紧急修复流程
切换到主分支:git checkout main
创建修复分支:git checkout -b hotfix-123
修复问题并提交:git commit -am "修复问题 #123"
推送修复:git push origin hotfix-123
合并修复:通过 Pull Request 合并到主分支
📘 Git 深入概念 Git 对象类型
Blob :文件内容
Tree :目录结构
Commit :完整的提交信息
Tag :标记特定提交的标签
引用类型
HEAD :当前工作位置
分支 :指向特定提交的可移动指针
远程引用 :远程仓库分支的本地引用
🛡️ 最佳实践
频繁提交,保持提交粒度小
编写清晰、描述性的提交消息
定期拉取远程更新,避免大型合并冲突
使用分支进行功能开发和实验
使用 .gitignore
排除不必要的文件