Skip to content

Git 版本控制指南

Git 简介

Git 是一个分布式版本控制系统,用于跟踪文件的变化,协调多人之间的工作。它最初由 Linus Torvalds 创建,现在是世界上最流行的版本控制系统。

安装 Git

Windows

  1. 下载 Git for Windows
  2. 运行安装程序,使用默认设置
  3. 打开 Git Bash 验证安装:
bash
git --version

macOS

使用 Homebrew 安装:

bash
brew install git

或下载 Git for Mac

Linux (Ubuntu/Debian)

bash
sudo apt update
sudo apt install git

基本配置

bash
# 设置用户名
git config --global user.name "你的名字"

# 设置邮箱
git config --global user.email "你的邮箱@example.com"

# 查看配置
git config --list

# 设置默认分支名
git config --global init.defaultBranch main

基本操作

创建仓库

bash
# 初始化新仓库
git init

# 克隆远程仓库
git clone [仓库URL]

基本工作流程

bash
# 查看状态
git status

# 添加文件到暂存区
git add [文件名]
git add .  # 添加所有文件

# 提交更改
git commit -m "提交信息"

# 推送到远程仓库
git push origin main

# 拉取远程更改
git pull origin main

分支操作

bash
# 查看所有分支
git branch -a

# 创建新分支
git branch [分支名]

# 切换分支
git checkout [分支名]
git switch [分支名]  # Git 2.23+

# 创建并切换到新分支
git checkout -b [分支名]
git switch -c [分支名]  # Git 2.23+

# 合并分支
git merge [分支名]

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

查看历史

bash
# 查看提交历史
git log

# 查看简洁历史
git log --oneline

# 查看图形化历史
git log --graph --oneline --all

# 查看文件修改历史
git log -p [文件名]

高级功能

暂存当前工作

bash
# 暂存当前工作
git stash

# 查看暂存列表
git stash list

# 应用暂存
git stash apply

# 应用并删除暂存
git stash pop

撤销操作

bash
# 撤销工作区的修改
git checkout -- [文件名]

# 撤销暂存区的修改
git reset HEAD [文件名]

# 修改最后一次提交
git commit --amend

# 回退到指定提交
git reset --hard [提交ID]

标签管理

bash
# 创建标签
git tag [标签名]

# 创建带注释的标签
git tag -a [标签名] -m "标签说明"

# 推送标签到远程
git push origin [标签名]

# 删除标签
git tag -d [标签名]

远程操作

远程仓库管理

bash
# 查看远程仓库
git remote -v

# 添加远程仓库
git remote add [名称] [URL]

# 删除远程仓库
git remote remove [名称]

# 重命名远程仓库
git remote rename [旧名] [新名]

推送与拉取

bash
# 推送指定分支
git push origin [分支名]

# 推送所有分支
git push --all origin

# 拉取但不合并
git fetch origin

# 拉取并合并
git pull origin [分支名]

工作流程

Git Flow 工作流

Git Flow 是一种流行的分支管理策略:

  1. main:生产环境分支
  2. develop:开发分支
  3. feature:功能开发分支
  4. release:发布准备分支
  5. hotfix:紧急修复分支

GitHub Flow 工作流

更简单的工作流:

  1. main:主分支,始终保持可部署状态
  2. feature:功能开发分支,完成后合并到 main
  3. 使用 Pull Request 进行代码审查

常见问题与解决

合并冲突

bash
# 查看冲突文件
git status

# 手动解决冲突后
git add [冲突文件]
git commit

回退错误的提交

bash
# 撤销最后一次提交(保留更改)
git reset --soft HEAD~1

# 撤销最后一次提交(不保留更改)
git reset --hard HEAD~1

# 创建反向提交
git revert [提交ID]

忽略文件

创建 .gitignore 文件:

gitignore
# 常见忽略规则
node_modules/
dist/
*.log
.env
.DS_Store
*.tmp

GUI 工具推荐

  • GitHub Desktop:GitHub 官方客户端
  • SourceTree:Atlassian 出品的免费 Git GUI
  • GitKraken:功能强大的 Git 客户端
  • VS Code:内置 Git 支持

参考资料