前言 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 排除不必要的文件