Git简介
Git是一个分布式版本控制系统,由Linus Torvalds于2005年开发,用于高效管理项目代码。其核心优势在于支持非线性开发、数据完整性和分布式协作。Git的版本库(Repository)包含完整的项目历史,每个开发者均可独立工作,无需持续联网。
Git工作原理
Git通过三个主要区域管理文件变化:工作目录(Working Directory)、暂存区(Staging Area)和版本库(Repository)。工作目录包含实际文件,暂存区记录即将提交的更改,版本库存储所有提交历史。
快照机制是Git的核心设计。每次提交保存项目文件的完整快照而非差异,通过指针链接形成历史链。分支则是指向某个快照的轻量级指针,默认分支通常命名为main或master。
常用Git命令
初始化与克隆
git init # 初始化本地仓库
git clone <url> # 克隆远程仓库
基础操作
git status # 查看文件状态
git add <file> # 添加文件到暂存区
git commit -m "message" # 提交更改
git log # 查看提交历史
分支管理
git branch # 列出所有分支
git checkout -b <branch> # 创建并切换分支
git merge <branch> # 合并指定分支
远程协作
git remote -v # 查看远程仓库
git push origin <branch> # 推送分支到远程
git pull # 拉取远程更新
git fetch # 获取远程变更
撤销操作
git reset --hard <commit> # 重置到指定提交
git revert <commit> # 创建撤销提交
git checkout -- <file> # 丢弃工作区修改
高级应用场景
储藏更改
git stash # 临时保存未提交的修改
git stash pop # 恢复储藏的更改
标签管理
git tag -a v1.0 -m "msg" # 创建带注释标签
git push origin --tags # 推送所有标签
子模块
git submodule add <url> # 添加子模块
git submodule update # 更新子模块
配置与优化
全局设置
git config --global user.name "Name"
git config --global user.email "email@example.com"
git config --global core.editor "vim" # 设置默认编辑器
性能优化
git gc # 清理冗余文件
git repack # 压缩仓库数据
可视化工具推荐
- GitKraken:跨平台GUI客户端
- Sourcetree:免费可视化工具
- VS Code Git集成:编辑器内置功能
- tig:终端交互式查看工具
典型工作流程示例
- 克隆现有项目:
git clone https://github.com/user/repo.git
cd repo
- 创建功能分支:
git checkout -b feature/login
- 开发并提交代码:
git add .
git commit -m "Implement login UI"
- 同步远程变更:
git fetch origin
git rebase origin/main
- 推送更改:
git push -u origin feature/login
- 创建合并请求(Pull Request)完成代码审查流程。
常见问题解决
合并冲突处理 编辑冲突文件后执行:
git add <conflicted-file>
git commit
找回丢失提交
git reflog # 查看操作历史
git cherry-pick <hash> # 恢复特定提交
清理历史
git filter-branch # 重写提交历史
git rebase -i # 交互式变基
掌握这些核心概念和命令能显著提升版本控制效率。建议通过实践项目熟悉工作流程,逐步探索更高级功能如bisect调试、hooks自动化等扩展应用。


被折叠的 条评论
为什么被折叠?



