以下是Git基础知识的系统梳理,涵盖核心概念、常用命令、分支管理及常见问题解决方案:
一、Git核心概念
-
版本控制的作用
- 追踪文件变更历史,支持多人协作,可回退到任意版本。
-
分布式VS集中式
- 集中式(如SVN):中央服务器存储所有版本,需联网操作。
- 分布式(Git):每个用户拥有完整仓库副本,可离线工作。
-
核心区域
- 工作区(Working Directory):本地文件目录。
- 暂存区(Staging Area):临时存放待提交的修改。
- 版本库(Repository):存储所有提交历史。
二、Git基础操作与命令
-
初始化与基础配置
# 初始化仓库 git init # 配置用户信息(全局) git config --global user.name "Your Name" git config --global user.email "email@example.com"
-
提交代码
# 添加文件到暂存区 git add file.txt # 添加单个文件 git add . # 添加所有修改 # 提交到版本库 git commit -m "提交说明"
-
查看状态与差异
git status # 查看工作区和暂存区状态 git diff # 比较工作区与暂存区的差异 git diff --cached # 比较暂存区与最新提交的差异
-
忽略文件(.gitignore)
- 创建
.gitignore
文件,定义需忽略的文件/目录:# 忽略所有.log文件 *.log # 忽略node_modules目录 node_modules/
- 创建
三、分支管理
-
分支操作
# 创建分支 git branch feature-1 # 切换分支 git checkout feature-1 # 或创建并切换 git checkout -b feature-1 # 合并分支到当前分支 git merge feature-1 # 删除分支 git branch -d feature-1
-
解决合并冲突
- 冲突文件内标记冲突位置:
<<<<<<< HEAD 当前分支内容 ======= 合并分支内容 >>>>>>> feature-1
- 手动编辑后提交:
git add resolved-file.txt git commit -m "解决冲突"
- 冲突文件内标记冲突位置:
-
分支策略(Git Flow)
- main/master:稳定生产代码。
- develop:集成开发分支。
- feature/:功能开发分支。
- hotfix/:紧急修复分支。
四、远程仓库协作
-
远程仓库操作
# 添加远程仓库(默认别名origin) git remote add origin https://github.com/user/repo.git # 推送本地分支到远程 git push -u origin main # 首次推送需加-u git push # 后续推送 # 拉取远程更新 git pull origin main # 拉取并合并 git fetch origin # 仅获取远程变更不合并 # 克隆仓库 git clone https://github.com/user/repo.git
-
跟踪远程分支
# 创建本地分支并跟踪远程分支 git checkout --track origin/feature-1
五、高级操作与问题修复
-
暂存更改(Stash)
git stash # 临时保存工作区修改 git stash pop # 恢复最近暂存的修改
-
撤销与回退
# 撤销工作区修改(未add) git checkout -- file.txt # 撤销暂存区修改(已add) git reset HEAD file.txt # 回退到某次提交(保留工作区) git reset --soft <commit-id> # 彻底回退到某次提交(丢弃后续提交) git reset --hard <commit-id> # 生成反向提交以撤销某次更改(推荐公共分支使用) git revert <commit-id>
-
标签管理
git tag v1.0.0 # 创建轻量标签 git tag -a v1.0.0 -m "Release version 1.0.0" # 含注释的标签 git push origin --tags # 推送所有标签到远程
六、常见问题与解决
-
恢复误删文件
# 查看删除记录 git log --diff-filter=D -- path/to/file # 恢复文件到最新提交 git checkout HEAD^ -- path/to/file
-
查看提交历史
git log # 查看完整历史 git log --oneline # 简洁模式 git log --graph # 图形化分支合并历史
-
找回丢失的提交
git reflog # 查看所有操作记录 git checkout <commit-id># 切换到丢失的提交
七、最佳实践
-
提交规范
- 提交信息清晰(如“feat: 新增登录功能”)。
- 推荐使用Conventional Commits。
-
分支策略
- 功能开发使用独立分支,避免直接修改主分支。
-
频繁提交
- 小步提交,保持每个提交的独立性。
学习资源推荐
- 官方文档:Git - Book
- 图形化工具:Sourcetree、GitKraken
- 在线练习:Learn Git Branching
掌握这些基础知识后,可通过实际项目练习,逐步熟悉团队协作流程和复杂场景处理!