Git 全面使用教程
目录
Git 简介
Git 是一个分布式版本控制系统,由 Linus Torvalds 于 2005 年创建,用于:
- 追踪代码变更历史
- 支持多人协作开发
- 管理分支与版本
- 实现代码回滚与恢复
安装与配置
1. 安装 Git
系统 | 安装方法 |
---|---|
Windows | Git for Windows |
macOS | brew install git |
Linux | sudo apt install git (Debian/Ubuntu) 或 sudo yum install git (CentOS) |
2. 基础配置
# 设置全局用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# 查看所有配置
git config --list
# 设置默认编辑器(如VSCode)
git config --global core.editor "code --wait"
基础操作
1. 初始化仓库
git init # 初始化新仓库
git clone <remote-url> # 克隆远程仓库
2. 文件状态管理
git status # 查看工作区状态
git add <file> # 添加文件到暂存区
git add . # 添加所有修改
git reset HEAD <file> # 从暂存区移除文件
3. 提交更改
git commit -m "提交说明" # 提交暂存区内容
git commit -am "提交说明" # 跳过暂存区直接提交(仅限已跟踪文件)
4. 查看历史
git log # 完整提交历史
git log --oneline --graph # 简洁版分支拓扑图
git show <commit-id> # 查看某次提交的详情
分支管理
1. 分支操作
git branch # 查看本地分支
git branch <branch-name> # 创建新分支
git checkout <branch-name> # 切换分支
git checkout -b <branch-name> # 创建并切换分支(推荐)
git branch -d <branch-name> # 删除已合并的分支
git branch -D <branch-name> # 强制删除未合并的分支
2. 合并与冲突
git merge <branch-name> # 合并分支到当前分支
git merge --abort # 终止合并冲突
冲突解决步骤:
- 手动编辑冲突文件(
<<<<<<<
至>>>>>>>
区域) git add <file>
标记为已解决git commit
完成合并
3. 变基(Rebase)
git rebase <branch-name> # 将当前分支变基到目标分支
git rebase --abort # 终止变基
远程仓库
1. 连接远程仓库
git remote add origin <url> # 添加远程仓库
git remote -v # 查看远程仓库信息
git push -u origin main # 首次推送并建立追踪
2. 推送与拉取
git push origin <branch-name> # 推送本地提交
git pull origin <branch-name> # 拉取并合并远程变更(= fetch + merge)
git fetch origin # 仅获取远程更新(不自动合并)
3. 解决远程冲突
# 当推送失败时:
git pull --rebase origin main # 拉取远程更新并变基本地提交
git push origin main # 重新推送
撤销与回退
1. 撤销工作区修改
git restore <file> # 丢弃未暂存的修改(Git 2.23+)
git checkout -- <file> # 传统方式撤销修改
2. 撤销暂存区文件
git restore --staged <file> # 将文件移出暂存区(Git 2.23+)
git reset HEAD <file> # 传统方式撤销暂存
3. 提交回退
git reset --soft HEAD~1 # 撤销提交但保留修改到暂存区
git reset --hard HEAD~1 # 彻底回退到上一个提交(慎用!)
git revert <commit-id> # 创建新提交来撤销指定提交
标签管理
1. 创建标签
git tag v1.0.0 # 轻量标签
git tag -a v1.0.0 -m "Release" # 附注标签(推荐)
2. 操作标签
git tag # 查看所有标签
git show v1.0.0 # 查看标签详情
git push origin v1.0.0 # 推送单个标签
git push origin --tags # 推送所有标签
git tag -d v1.0.0 # 删除本地标签
高级操作
1. 贮藏(Stash)
git stash # 临时保存未提交的修改
git stash list # 查看贮藏列表
git stash pop # 恢复最近一次贮藏并删除记录
git stash apply stash@{0} # 恢复指定贮藏(不删除记录)
2. 子模块(Submodule)
git submodule add <repo-url> # 添加子模块
git submodule update --init # 初始化子模块
3. 重写历史(慎用!)
git commit --amend # 修改最近一次提交
git rebase -i HEAD~3 # 交互式变基(合并/修改提交)
4. 二分查找问题提交
git bisect start # 启动二分查找
git bisect bad # 标记当前提交为有问题
git bisect good <commit-id> # 标记已知正常提交
常用工作流示例
1. 功能开发流程
git checkout -b feature/login # 创建功能分支
git add . && git commit -m "完成登录功能"
git checkout main # 切回主分支
git pull origin main # 同步最新代码
git merge feature/login # 合并功能分支
git push origin main # 推送更新
2. 紧急修复流程
git checkout main
git pull origin main
git checkout -b hotfix/xxx # 创建修复分支
# 进行修复并提交
git checkout main
git merge hotfix/xxx # 合并修复
git tag v1.0.1 # 打标签
git push origin main --tags # 推送
提示
- 使用
git <command> --help
查看命令帮助文档- 重要操作前建议先创建备份分支
- 团队协作时优先使用
revert
代替reset
避免历史覆盖