1. Git 概述
- Git:分布式版本控制系统,用于跟踪文件变更
- 核心概念:
- 工作区:本地修改的文件
- 暂存区:准备提交的变更
- 本地仓库:已提交的版本历史
- 远程仓库:团队共享的代码仓库
2. 配置相关命令
(1) 用户配置
# 设置全局用户名
git config --global user.name "Your Name"
# 设置全局邮箱
git config --global user.email "email@example.com"
# 查看配置
git config --list
(2) 仓库初始化
# 初始化新仓库
git init
# 克隆远程仓库
git clone <repository_url>
3. 文件状态与提交
(1) 查看状态
# 查看工作区和暂存区状态
git status
# 简洁状态
git status -s
(2) 添加文件到暂存区
# 添加指定文件
git add <file>
# 添加所有修改
git add .
# 添加所有修改(包括删除的文件)
git add -A
(3) 提交变更
# 提交到本地仓库
git commit -m "提交说明"
# 提交并添加所有修改
git commit -am "提交说明"
# 修改最后一次提交
git commit --amend
4. 分支管理
(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 rebase <branch_name>
5. 远程仓库操作
(1) 远程仓库配置
# 查看远程仓库
git remote -v
# 添加远程仓库
git remote add origin <repository_url>
# 修改远程仓库地址
git remote set-url origin <new_url>
(2) 推送与拉取
# 推送本地分支到远程
git push origin <branch_name>
# 强制推送
git push -f origin <branch_name>
# 拉取远程分支
git pull origin <branch_name>
# 拉取远程分支并合并
git fetch origin
git merge origin/<branch_name>
6. 查看历史与差异
(1) 查看提交历史
# 查看详细提交历史
git log
# 简洁历史
git log --oneline
# 查看指定文件的修改历史
git log <file>
# 查看分支合并图
git log --graph
(2) 查看差异
# 查看工作区与暂存区的差异
git diff
# 查看暂存区与最新提交的差异
git diff --staged
# 查看两次提交之间的差异
git diff <commit1> <commit2>
7. 撤销与回退
(1) 撤销工作区修改
# 撤销指定文件的修改
git checkout -- <file>
# 撤销所有修改
git checkout .
(2) 撤销暂存区修改
# 从暂存区移除指定文件
git reset HEAD <file>
# 从暂存区移除所有文件
git reset HEAD .
(3) 回退提交
# 回退到指定提交(保留修改)
git reset <commit_id>
# 回退到指定提交(不保留修改)
git reset --hard <commit_id>
# 回退到上一个提交
git reset HEAD^
8. 标签管理
# 查看标签
git tag
# 创建标签
git tag <tag_name>
# 创建带注释的标签
git tag -a <tag_name> -m "标签说明"
# 推送标签到远程
git push origin <tag_name>
# 推送所有标签
git push origin --tags
9. 储藏与清理
(1) 储藏工作
# 储藏当前修改
git stash
# 查看储藏列表
git stash list
# 应用最近储藏
git stash apply
# 应用指定储藏
git stash apply stash@{n}
# 删除储藏
git stash drop stash@{n}
# 应用并删除储藏
git stash pop
(2) 清理文件
# 删除未跟踪的文件
git clean -f
# 删除未跟踪的目录
git clean -fd
# 预览要删除的文件
git clean -n
10. 子模块管理
# 添加子模块
git submodule add <repository_url> <path>
# 初始化子模块
git submodule init
# 更新子模块
git submodule update
# 更新所有子模块
git submodule update --init --recursive
11. 实用技巧
(1) 忽略文件
创建 .gitignore 文件,添加要忽略的文件模式:
# 忽略日志文件
*.log
# 忽略编译产物
build/
dist/
# 忽略环境配置文件
.env
(2) 查看文件修改者
# 查看文件的修改历史
git blame <file>
(3) 查找包含关键字的提交
git log --grep="关键字"
(4) 重写提交历史
# 交互式重写历史
git rebase -i <commit_id>
12. 常见问题解决
(1) 解决冲突
- 编辑冲突文件,手动解决冲突
- 标记冲突已解决:
git add <file> - 继续合并:
git commit
(2) 恢复误删分支
# 查看所有提交(包括已删除分支)
git reflog
# 恢复分支
git checkout -b <branch_name> <commit_id>
(3) 修改最近提交的说明
git commit --amend
核心要点总结:
- 工作流程:
git add→git commit→git push - 分支管理:使用分支进行功能开发,避免在主分支直接修改
- 冲突解决:手动编辑冲突文件后
git add标记解决 - 撤销操作:
git reset回退提交,git checkout撤销修改 - 远程协作:
git pull获取最新代码,git push推送本地修改 - 版本控制:
git log查看历史,git diff查看差异
Git 是现代化开发必备的工具,熟练掌握可以极大提高开发效率和团队协作能力。