Git版本控制完全指南
1. Git简介
Git是一个分布式版本控制系统,用于跟踪文件(尤其是代码)的变更历史,支持多人协作开发,能高效管理从小型到大型项目。
核心优势:
- 分布式架构,无需依赖中央服务器即可工作
- 强大的分支管理,支持并行开发
- 高效的版本跟踪,可随时回滚到历史版本
- 支持离线工作,联网后再同步变更
2. 安装Git
2.1 Windows系统
- 访问Git官网下载最新版本安装包
- 运行安装程序,默认选项即可(建议勾选"Add Git to PATH")
- 安装完成后,右键点击桌面,选择"Git Bash Here"打开命令行
2.2 macOS系统
- 方式1(推荐):使用Homebrew,终端输入 brew install git
- 方式2:从App Store安装Xcode,内置Git
- 验证:终端输入 git --version 查看版本
2.3 Linux系统
- Debian/Ubuntu:sudo apt update && sudo apt install git
- Fedora/RHEL:sudo dnf install git
- CentOS:sudo yum install git
3. 初始配置
安装完成后,需配置用户名和邮箱(用于标识提交者):
# 配置全局用户名
git config --global user.name "你的用户名"
# 配置全局邮箱
git config --global user.email "你的邮箱地址"
示例:
git config --global user.name "Zhang San"
git config --global user.email "zhangsan@example.com"
常用配置命令:
- git config --list:查看所有配置
- git config --global core.editor "code --wait":设置默认编辑器为VS Code
- git config --global alias.st status:设置别名(用git st代替git status)
4. 基本工作流程
Git工作流程分为三个区域:工作区(Working Directory)→ 暂存区(Staging Area)→ 本地仓库(Repository)
4.1 初始化仓库
在项目文件夹中初始化Git仓库:
# 进入项目目录
cd /path/to/your/project
# 初始化仓库
git init
执行后会创建一个隐藏的.git文件夹(存储版本信息)
4.2 跟踪文件与提交
- git add 文件名:将工作区文件添加到暂存区
- git add .:添加当前目录所有变更到暂存区
- git commit -m "提交信息":将暂存区内容提交到本地仓库
# 创建一个文件
echo "Hello Git" > README.md
# 添加到暂存区
git add README.md
# 提交到仓库
git commit -m "初始化项目,添加README文件"
4.3 查看状态与历史
- git status:查看工作区和暂存区状态
- git log:查看提交历史(按q退出)
- git log --oneline:简洁显示提交历史
提示:git status是最常用的命令之一,建议经常使用以了解当前状态
5. 分支管理
分支用于并行开发(如功能开发、修复bug),不影响主分支
5.1 常用分支命令
- git branch:查看所有本地分支(当前分支前有*)
- git branch 分支名:创建新分支
- git checkout 分支名:切换到指定分支
- git checkout -b 分支名:创建并切换到新分支
- git merge 分支名:将指定分支合并到当前分支
- git branch -d 分支名:删除已合并的分支
- git branch -D 分支名:强制删除未合并的分支
5.2 分支操作示例
# 创建并切换到feature/login分支(开发登录功能)
git checkout -b feature/login
# 修改文件后提交
git add .
git commit -m "完成登录页面开发"
# 切换到主分支
git checkout main
# 将feature/login分支合并到主分支
git merge feature/login
# 删除已合并的分支
git branch -d feature/login
分支结构示例:
main: A --- B --- E --- F (合并feature分支)
|
feature: C --- D ---------
6. 远程仓库操作
远程仓库(如GitHub、GitLab)用于多人协作和备份,常用操作:
6.1 克隆远程仓库
将远程仓库下载到本地:
git clone https://github.com/username/repository.git
6.2 关联远程仓库
为本地仓库关联远程仓库:
# 查看当前远程仓库
git remote
# 添加远程仓库(通常命名为origin)
git remote add origin https://github.com/yourusername/yourrepo.git
6.3 推送与拉取
- git push origin 分支名:将本地分支推送到远程仓库
- git pull origin 分支名:拉取远程分支更新并合并到本地
# 首次推送main分支到远程
git push -u origin main
# 后续推送可简化
git push
# 拉取远程更新
git pull origin main
提示:多人协作时,建议先pull拉取最新代码,再push推送自己的变更,避免冲突
7. 高级操作
7.1 撤销操作
- 撤销工作区修改:git checkout -- 文件名
- 从暂存区撤回:git reset HEAD 文件名
- 撤销最近一次提交(保留变更):git reset --soft HEAD~1
7.2 分支合并冲突解决
合并分支时若出现冲突,Git会提示"Automatic merge failed",需手动解决:
- 打开冲突文件,查找带<<<<<<<标记的冲突部分
- 编辑文件保留正确内容,删除冲突标记
- 用git add 冲突文件标记为已解决
- 用git commit完成合并
7.3 标签管理(发布版本)
- git tag v1.0.0:创建轻量标签
- git tag -a v1.0.0 -m "版本1.0发布":创建带注释的标签
- git push origin v1.0.0:推送标签到远程
7.4 暂存工作区(Stash)
临时保存未提交的变更,用于切换分支:
- git stash:暂存当前工作区
- git stash pop:恢复暂存并删除记录
- git stash list:查看暂存列表
8. 常用场景示例
场景1:提交后发现遗漏文件
# 补充添加文件到上一次提交(不创建新提交)
git add 遗漏的文件
git commit --amend -m "修改提交信息(可选)"
场景2:回滚到历史版本
# 查看提交历史,找到目标版本的哈希值
git log --oneline
# 回滚到指定版本
git reset --hard 哈希值(如a1b2c3d)
# 若已推送到远程,强制覆盖(谨慎使用)
git push -f origin 分支名
场景3:从远程分支创建本地分支
git checkout -b 本地分支名 origin/远程分支名
9. 总结与学习资源
掌握以上命令可满足日常开发需求,更多学习资源:
提示:Git命令较多,不必死记硬背,重点理解工作原理,常用命令会自然熟练