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的核心概念:工作区、暂存区、版本库。
掌握这几个命令即可应对大多数场景:
- git clone / git init — 初始化仓库
- git add . — 添加修改
- git commit -m "描述" — 提交更改
- git push — 推送到远程
- git pull — 拉取远程更新
更多高级用法可以参考Pro Git 书籍。
📚 延伸阅读: