Git
6/17/25About 4 min
Git
一、Git基础概念
- 分布式版本控制:每个开发者本地都有完整仓库副本,无需依赖中央服务器即可操作。
- 三大区域:
- 工作区:本地实际操作的文件目录。
- 暂存区(Index/Stage):临时存放待提交的修改。
- 本地仓库:存储所有提交历史的数据库。
- 远程仓库:如GitHub/Gitee,用于团队协作共享代码。
二、环境配置
1. 安装Git
- Windows:从官网下载.msi安装包,按向导安装
- Mac:
brew install git
(需先安装Homebrew) - Linux:
sudo apt-get install git
(Debian系)或sudo yum install git
(RedHat系)
2. 全局配置
git config --global user.name "你的用户名" # 设置提交用户名
git config --global user.email "your@email.com" # 设置提交邮箱
git config --list # 查看配置信息
三、核心操作命令
1. 仓库初始化与克隆
git init # 初始化本地仓库
git clone https://github.com/user/repo.git # 克隆远程仓库
git clone -b dev https://... # 克隆指定分支
2. 状态查看与文件操作
git status # 查看工作区状态
git add file.txt # 添加单个文件到暂存区
git add . # 添加所有修改到暂存区
git add -u # 仅添加已跟踪文件的修改
3. 提交与历史查看
git commit -m "提交说明" # 提交暂存区内容到本地仓库
git commit -am "提交说明" # 跳过add直接提交(需已跟踪文件)
git log # 查看提交历史
git log --oneline # 简洁模式查看历史
git log -p # 查看每次提交的具体改动
4. 远程仓库操作
git remote -v # 查看远程仓库列表
git remote add origin https://... # 添加远程仓库
git push origin master # 推送本地master分支到远程
git push -u origin master # 推送并关联分支
git pull origin master # 拉取远程代码并合并
git fetch origin # 仅拉取远程数据不合并
四、分支管理
1. 基本操作
git branch # 查看所有分支
git branch dev # 创建dev分支
git checkout dev # 切换到dev分支
git switch dev # (Git 2.23+)切换分支
git branch -d dev # 删除分支(需已合并)
git branch -D dev # 强制删除分支
2. 分支合并
git checkout master # 切换到目标分支
git merge dev # 合并dev分支到当前分支
# 解决冲突后:
git add conflict-file # 标记冲突已解决
git commit -m "合并dev分支"
3. 常用工作流
Feature Branch 工作流:每个功能在独立分支开发,完成后合并到主分支
Git Flow:包含 develop/feature/release/hotfix/master 分支规范
五、撤销与回退操作
1. 撤销工作区修改
git checkout -- file.txt # 撤销未暂存的文件修改
git restore file.txt # (Git 2.23+)等效命令
2. 撤销暂存区修改
git reset HEAD file.txt # 取消暂存文件
git restore --staged file.txt # (Git 2.23+)等效命令
3. 回退提交
git reset --soft HEAD^ # 回退到上一次提交,保留修改
git reset --mixed HEAD^ # 回退并取消暂存(默认模式)
git reset --hard HEAD^ # 彻底回退,丢弃所有修改
# 按提交哈希回退:
git reset --hard abc1234 # abc1234为目标提交哈希前7位
4. 远程分支回退
git push origin +master^:master # 强制推送回退后的分支(危险操作)
六、实用技巧
1. 忽略文件
在项目根目录创建.gitignore文件
# 忽略编译文件
*.class
# 忽略日志文件
logs/
# 忽略特定系统文件
.DS_Store
2. 暂存工作区
git stash # 暂存当前工作区修改
git stash list # 查看暂存列表
git stash apply # 恢复最近的暂存
git stash drop # 删除最近的暂存
git stash pop # 恢复并删除暂存
3. 标签管理
git tag v1.0 # 创建轻量级标签
git tag -a v1.0 -m "版本说明" # 创建带说明的标签
git push origin v1.0 # 推送标签到远程
git tag -d v1.0 # 删除本地标签
git push origin :v1.0 # 删除远程标签
4. 补丁操作
git diff > feature.diff # 生成当前修改的补丁
git apply feature.diff # 应用补丁
git am < feature.diff # 应用带提交信息的补丁
七、团队协作规范示例
- 提交信息规范:
<类型>[范围]: <主题>
示例:
feat(auth): 添加用户登录功能
fix(profile): 修复个人信息编辑bug
分支命名规范:
- 功能分支:feature/xxx-function
- 修复分支:fix/xxx-bug
- 热修复分支:hotfix/urgent-issue
协作流程:
- 克隆远程仓库
- 创建个人分支
- 开发并提交
- 拉取最新主分支
- 解决冲突并合并
- 推送个人分支
- 发起PR请求
八、常见问题解决
1. 冲突解决
# 合并时出现冲突:
Auto-merging file.txt
CONFLICT (content): Merge conflict in file.txt
# 打开文件查看冲突标记:
<<<<<<< HEAD
当前分支内容
=======
目标分支内容
>>>>>>> feature/dev
# 手动修改为正确内容后:
git add file.txt
git commit -m "解决冲突"
2. 远程仓库同步问题
# 当远程仓库有更新但本地有修改时:
git pull --rebase origin master # 变基方式拉取,保持线性提交历史
# 或
git pull origin master # 合并方式拉取
3. 大文件处理
安装 Git LFS(Large File Storage):
git lfs install # 初始化LFS
git lfs track "*.zip" # 跟踪大文件类型
git add .gitattributes # 提交跟踪配置