我来为你详细介绍 Git 的使用方法和常用命令。

## **Git 基础概念**
- **仓库 (Repository)**：存储项目代码和历史记录的地方
- **工作区 (Working Directory)**：你正在编辑的文件
- **暂存区 (Staging Area)**：准备提交的文件
- **本地仓库 (Local Repository)**：本地保存的版本历史
- **远程仓库 (Remote Repository)**：GitHub/GitLab 等平台的仓库

## **Git 工作流程**
```
工作区 → `git add` → 暂存区 → `git commit` → 本地仓库 → `git push` → 远程仓库
```

## **常用命令分类**

### **1. 配置相关**
```bash
# 设置用户信息
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

# 查看配置
git config --list

# 设置默认编辑器（如 VS Code）
git config --global core.editor "code --wait"
```

### **2. 仓库操作**
```bash
# 初始化新仓库
git init

# 克隆远程仓库
git clone <仓库URL>
git clone https://github.com/username/repo.git

# 查看仓库状态
git status

# 查看远程仓库
git remote -v

# 添加远程仓库
git remote add origin <仓库URL>
```

### **3. 基础操作**
```bash
# 添加文件到暂存区
git add 文件名             # 添加特定文件
git add .                 # 添加所有修改
git add *.js              # 添加所有js文件

# 提交到本地仓库
git commit -m "提交说明"

# 添加并提交（两步合并）
git commit -am "提交说明"   # 只能提交已跟踪的文件

# 查看提交历史
git log
git log --oneline         # 简洁显示
git log --graph           # 图形化显示分支
git log -p                # 显示具体修改内容
```

### **4. 分支管理**
```bash
# 查看分支
git branch                # 查看本地分支
git branch -a             # 查看所有分支（包括远程）
git branch -r             # 查看远程分支

# 创建分支
git branch 分支名          # 创建分支
git checkout -b 分支名     # 创建并切换到该分支
git switch -c 分支名       # 新版本推荐（Git 2.23+）

# 切换分支
git checkout 分支名
git switch 分支名          # 新版本推荐

# 合并分支
git merge 分支名           # 将指定分支合并到当前分支

# 删除分支
git branch -d 分支名       # 删除已合并的分支
git branch -D 分支名       # 强制删除分支
```

### **5. 远程操作**
```bash
# 推送代码
git push origin 分支名
git push -u origin main   # 首次推送并建立关联

# 拉取代码
git pull origin 分支名     # 拉取并合并
git fetch origin          # 只拉取不合并

# 同步远程分支
git fetch --prune         # 删除本地不存在的远程分支引用
```

### **6. 撤销操作**
```bash
# 撤销工作区修改
git checkout -- 文件名      # 丢弃工作区修改
git restore 文件名         # 新版本推荐

# 撤销暂存区文件
git reset HEAD 文件名      # 从暂存区移除
git restore --staged 文件名 # 新版本推荐

# 修改上次提交
git commit --amend        # 修改提交信息或内容

# 回退到指定版本
git reset --soft HEAD^    # 撤销commit，保留修改到暂存区
git reset --mixed HEAD^   # 撤销commit，保留修改到工作区（默认）
git reset --hard HEAD^    # 彻底删除commit和修改
git reset --hard commit_id # 回退到指定commit
```

### **7. 暂存修改**
```bash
# 临时保存修改
git stash                 # 保存当前修改
git stash save "说明"     # 保存并添加说明
git stash list            # 查看暂存列表
git stash apply           # 恢复最近暂存的修改
git stash pop             # 恢复并删除暂存记录
git stash drop            # 删除暂存记录
```

### **8. 标签管理**
```bash
# 创建标签
git tag v1.0              # 创建轻量标签
git tag -a v1.0 -m "版本说明"  # 创建附注标签

# 查看标签
git tag                   # 列出所有标签
git show v1.0             # 查看标签详情

# 推送标签
git push origin v1.0      # 推送单个标签
git push origin --tags    # 推送所有标签
```

### **9. 比较差异**
```bash
git diff                  # 比较工作区和暂存区
git diff --staged         # 比较暂存区和最新提交
git diff HEAD             # 比较工作区和最新提交
git diff 分支1 分支2       # 比较两个分支
git diff commit1 commit2  # 比较两次提交
```

## **实用工作流程示例**

### **场景1：日常开发流程**
```bash
# 1. 开始新功能
git checkout main
git pull origin main
git checkout -b feature/new-feature

# 2. 开发
git add .
git commit -m "添加新功能"

# 3. 推送
git push origin feature/new-feature

# 4. 合并到主分支
git checkout main
git merge feature/new-feature
git push origin main
```

### **场景2：处理紧急bug**
```bash
# 1. 暂存当前工作
git stash

# 2. 创建修复分支
git checkout -b hotfix/bug-fix

# 3. 修复并提交
# ... 修复代码 ...
git add .
git commit -m "修复紧急bug"

# 4. 合并修复
git checkout main
git merge hotfix/bug-fix
git push origin main

# 5. 恢复之前的工作
git checkout feature/your-branch
git stash pop
```

## **实用技巧**
1. **设置别名**：
   ```bash
   git config --global alias.co checkout
   git config --global alias.br branch
   git config --global alias.ci commit
   git config --global alias.st status
   ```

2. **查看帮助**：
   ```bash
   git help <命令>
   git <命令> --help
   ```

3. **忽略文件**：创建 `.gitignore` 文件

## **注意事项**
- 重要操作前先备份或确认
- 频繁提交小改动，保持提交信息清晰
- 推送前先拉取最新代码
- 使用分支进行功能开发

这些是 Git 最常用的命令，掌握了这些就能应对大部分日常开发需求。