Git版本控制入门教程:从安装到掌握分支管理的完整指南

Git是目前最广泛使用的版本控制系统。本教程从安装开始,一步步带你掌握Git的基本操作,包括初始化仓库、添加文件、提交更改、分支管理等。

为什么需要版本控制?

在开发过程中,我们经常会遇到以下问题:

  • 修改代码后发现之前的版本更好,想要回滚
  • 团队多人协作,代码冲突问题
  • 需要记录每次修改的原因和内容

Git完美解决了这些问题,它可以记录每次修改,支持分支管理,方便团队协作。

Git安装

Linux 安装:

# Ubuntu/Debian
sudo apt update
sudo apt install git

# CentOS/RHEL
sudo yum install git
# 或
sudo dnf install git

macOS 安装:

brew install git

Windows 安装:

从 Git官网 下载安装包,直接安装即可。

配置用户信息:

git config --global user.name "你的名字"
git config --global user.email "[email protected]"
git config --global core.editor "vim"

Git基础操作

初始化仓库

cd /path/to/project
git init                 # 初始化Git仓库
git clone https://github.com/user/repo.git    # 克隆远程仓库

查看状态

git status              # 查看工作区域状态
git diff                # 查看未暂存的变更
git diff --staged       # 查看已暂存的变更

添加与提交

git add file.txt        # 添加指定文件
git add .               # 添加所有修改的文件
git add -A              # 添加所有文件(包括删除)

git commit -m "提交信息"  # 提交到本地仓库
git commit -am "提交信息"  # 跳过add,直接提交

历史记录

git log                 # 查看提交历史
git log --oneline       # 单行显示
git log --graph         # 图形显示分支
git log -p              # 显示每次提交的内容变更

远程仓库操作

# 查看远程仓库
git remote -v           # 显示远程仓库地址
git remote add origin https://github.com/user/repo.git

# 推送到远程
git push origin main    # 推送到远程 main 分支
git push -u origin main # 首次推送,关联本地分支

# 拉取远程更新
git pull origin main    # 拉取并合并
git fetch origin        # 下载但不合并
git fetch origin && git merge origin/main   # 等价于 pull

分支管理

分支基础

# 创建与切换分支
git branch feature      # 创建分支
git checkout feature    # 切换到分支
git switch -c feature   # 新版创建并切换分支

# 合并分支
git checkout main       # 切换到主分支
git merge feature       # 合并feature分支到当前分支

# 删除分支
git branch -d feature   # 删除分支(已合并)
git branch -D feature   # 强制删除分支

解决冲突

当团队成员修改了同一个文件时,可能会发生冲突:

git pull origin main    # 拉取远程更新
# 如果冲突,Git会在冲突文件中标记:
<<<<<<< HEAD
你的修改内容
=======
他人的修改内容
>>>>>>> commit-hash

# 编辑文件,解决冲突
# 删除 >>> > 和 ======= 标记,保留需要的内容
git add .               # 添加解决后的文件
git commit              # 提交解决冲突

撤销操作

# 撤销未暂存的修改
git restore file.txt    # 恢复文件到上次提交状态
git restore .           # 恢复所有文件

# 撤销已暂存的修改
git reset HEAD file.txt # 取消暂存
git restore --staged file.txt

# 撤销提交
git reset --soft HEAD^   # 撤销提交,保留修改
git reset --mixed HEAD^  # 撤销提交,取消暂存
git reset --hard HEAD^   # 撤销提交,丢弃修改 (危险!)

# 退回到指定版本
git reset --hard commit-id

标签与发布

git tag v1.0            # 创建标签
git tag -a v1.0 -m "版本1.0"   # 创建带说明的标签
git tag -d v1.0         # 删除标签
git push origin v1.0    # 推送标签到远程

常用技巧

# 忽略文件
echo "*.log" >> .gitignore     # 添加日志文件忽略
echo ".env" >> .gitignore      # 添加环境变量文件

# 暂存修改
git stash              # 保存当前修改
git stash pop          # 恢复暂存的修改

# 更改远程仓库地址
git remote set-url origin https://github.com/new/repo.git

# 查看简要状态
git status -s          # 简洁显示

提交规范参考

良好的提交信息有助于团队协作:

# 格式: 类型(scope): 描述内容
feat(auth): 添加用户登录功能
fix(api): 修复获取用户列表的分页问题
docs: 更新README文档
style: 格式化代码
refactor: 重构用户模块
test: 添加单元测试
chore: 更新依赖包版本

总结

Git的核心概念:工作区、暂存区、版本库。

掌握这几个命令即可应对大多数场景:

  1. git clone / git init — 初始化仓库
  2. git add . — 添加修改
  3. git commit -m "描述" — 提交更改
  4. git push — 推送到远程
  5. git pull — 拉取远程更新

更多高级用法可以参考Pro Git 书籍。

发表评论