Git版本控制完全指南

1. Git简介

Git是一个分布式版本控制系统,用于跟踪文件(尤其是代码)的变更历史,支持多人协作开发,能高效管理从小型到大型项目。

核心优势:

2. 安装Git

2.1 Windows系统

2.2 macOS系统

2.3 Linux系统

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"

常用配置命令:

4. 基本工作流程

Git工作流程分为三个区域:工作区(Working Directory)→ 暂存区(Staging Area)→ 本地仓库(Repository)

4.1 初始化仓库

在项目文件夹中初始化Git仓库:

# 进入项目目录 cd /path/to/your/project # 初始化仓库 git init

执行后会创建一个隐藏的.git文件夹(存储版本信息)

4.2 跟踪文件与提交

# 创建一个文件 echo "Hello Git" > README.md # 添加到暂存区 git add README.md # 提交到仓库 git commit -m "初始化项目,添加README文件"

4.3 查看状态与历史

提示:git status是最常用的命令之一,建议经常使用以了解当前状态

5. 分支管理

分支用于并行开发(如功能开发、修复bug),不影响主分支

5.1 常用分支命令

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 推送与拉取

# 首次推送main分支到远程 git push -u origin main # 后续推送可简化 git push # 拉取远程更新 git pull origin main
提示:多人协作时,建议先pull拉取最新代码,再push推送自己的变更,避免冲突

7. 高级操作

7.1 撤销操作

7.2 分支合并冲突解决

合并分支时若出现冲突,Git会提示"Automatic merge failed",需手动解决:

  1. 打开冲突文件,查找带<<<<<<<标记的冲突部分
  2. 编辑文件保留正确内容,删除冲突标记
  3. git add 冲突文件标记为已解决
  4. git commit完成合并

7.3 标签管理(发布版本)

7.4 暂存工作区(Stash)

临时保存未提交的变更,用于切换分支:

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命令较多,不必死记硬背,重点理解工作原理,常用命令会自然熟练