【Git】Git 工具使用指南
Git 核心组件工作区(Working Directory):用户直接编辑文件的目录。暂存区(Staging Area/Index):临时保存待提交的修改。本地仓库(Local Repository):存储完整历史记录的 `.git` 目录。远程仓库(Remote Repository):托管在服务器上的共享仓库(如 GitHub、GitLab)
·
以下是一份更详细的 Git 工具使用指南,涵盖从基础到进阶的操作说明、常见场景和实用技巧:
前言 学习资源
- 官方文档:Pro Git Book
- 交互式练习:Learn Git Branching
- 命令行备忘单:Git Cheat Sheet
一、Git 核心概念与工作原理
1. 版本控制系统(VCS)
- 集中式 VCS(如 SVN):代码历史存储在中央服务器,开发者需联网操作。
- 分布式 VCS(如 Git):每个开发者本地拥有完整仓库副本,支持离线操作。
2. Git 核心组件
- 工作区(Working Directory):用户直接编辑文件的目录。
- 暂存区(Staging Area/Index):临时保存待提交的修改。
- 本地仓库(Local Repository):存储完整历史记录的
.git目录。 - 远程仓库(Remote Repository):托管在服务器上的共享仓库(如 GitHub、GitLab)。
3. Git 对象模型
- Blob:存储文件内容。
- Tree:记录目录结构和文件对应的 Blob。
- Commit:包含提交信息、作者、时间戳及指向父提交的指针。
- Tag:标记特定提交(如版本号)。
4. 分支的本质
- 分支本质是一个指向某次提交的可移动指针。
HEAD指针指向当前所在分支或提交。
二、Git 安装与配置(全平台详解)
1. 安装 Git
- Windows:
- 访问 Git 官网 下载安装包。
- 安装时勾选 “Use Git from the Windows Command Prompt”(将 Git 加入系统 PATH)。
- 其他选项保持默认,完成安装后验证:
git --version
- macOS:
- Homebrew 安装:
brew install git - 或下载官方安装包。
- Homebrew 安装:
- Linux(Debian/Ubuntu):
sudo apt update && sudo apt install git
2. 首次配置(必选项)
# 设置全局用户名和邮箱(用于标识提交者)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# 设置换行符自动转换(避免跨平台问题)
git config --global core.autocrlf true # Windows
git config --global core.autocrlf input # macOS/Linux
# 设置默认文本编辑器(如 VSCode)
git config --global core.editor "code --wait"
3. SSH 密钥配置(推荐)
# 生成 ED25519 密钥(安全性更高)
ssh-keygen -t ed25519 -C "your.email@example.com"
# 将公钥添加到 GitHub/GitLab
cat ~/.ssh/id_ed25519.pub
- 复制输出内容到远程仓库的 SSH Keys 设置页面。
三、Git 基础操作全流程
1. 仓库初始化与克隆
# 本地初始化仓库
mkdir my-project && cd my-project
git init
# 克隆远程仓库(支持 HTTPS/SSH)
git clone https://github.com/user/repo.git
git clone git@github.com:user/repo.git
2. 文件跟踪与提交
# 添加文件到暂存区
git add README.md # 添加单个文件
git add src/ # 添加目录下所有文件
git add . # 添加所有修改(包括新文件和修改)
# 提交到本地仓库
git commit -m "feat: 添加用户登录功能" # 提交信息需清晰描述变更
# 修改最后一次提交(未推送时)
git add forgotten-file.txt
git commit --amend # 可修改提交信息或追加文件
3. 查看与对比修改
# 查看工作区状态
git status
# 查看提交历史(简洁模式)
git log --oneline --graph
# 对比不同区域的修改
git diff # 工作区 vs 暂存区
git diff --staged # 暂存区 vs 最新提交
git diff HEAD~2 HEAD # 对比两个历史提交
四、分支管理与协作策略
1. 分支操作
# 创建分支
git branch feature-payment
# 切换分支
git checkout feature-payment
# 创建并切换分支(简写)
git checkout -b feature-payment
# 删除分支(已合并)
git branch -d feature-payment
# 强制删除分支(未合并)
git branch -D feature-payment
2. 合并与冲突解决
# 合并分支(Fast-Forward)
git checkout main
git merge feature-payment
# 合并分支(非 Fast-Forward,生成合并提交)
git merge --no-ff feature-payment
# 解决冲突步骤
1. 执行合并后,冲突文件会标记 `<<<<<<< HEAD` 和 `>>>>>>>`。
2. 手动编辑文件,保留需要的代码。
3. 标记冲突已解决:
git add resolved-file.txt
git commit -m "merge: 解决支付功能合并冲突"
3. 变基(Rebase)
# 将当前分支的提交“移植”到目标分支
git checkout feature-payment
git rebase main
# 解决冲突后继续变基
git add .
git rebase --continue
# 变基应用场景:整理本地提交历史,保持线性清晰
五、远程仓库协作全流程
1. 关联与推送
# 关联远程仓库(命名为 origin)
git remote add origin git@github.com:user/repo.git
# 首次推送(设置上游分支)
git push -u origin main
# 后续推送
git push
2. 拉取与同步
# 拉取远程更新(自动合并)
git pull origin main
# 等价于以下两步:
git fetch origin # 下载远程最新数据
git merge origin/main # 合并到当前分支
3. 多人协作冲突处理
# 场景:本地提交与远程提交冲突
git pull origin main # 拉取最新代码并自动合并
# 手动解决冲突后:
git add .
git commit -m "fix: 解决与远程分支的冲突"
git push
六、高级操作与场景应对
1. 撤销与回退
# 撤销工作区修改(未 add)
git restore README.md
# 撤销暂存区修改(已 add)
git restore --staged README.md
# 回退到某次提交(丢弃后续提交)
git reset --hard a1b2c3d # 谨慎使用!会丢失未提交的修改
2. 标签管理(版本发布)
# 创建轻量标签
git tag v1.0.0
# 创建附注标签(含详细信息)
git tag -a v1.0.0 -m "Release version 1.0.0"
# 推送标签到远程
git push origin --tags
3. 子模块(Submodule)
# 添加子模块
git submodule add https://github.com/user/lib.git
# 克隆含子模块的仓库
git clone --recurse-submodules https://github.com/user/repo.git
# 更新子模块
git submodule update --init --recursive
七、Git 工作流设计
1. 集中式工作流(小型团队)
- 所有开发者直接向
main分支推送代码。 - 适合快速迭代的小型项目。
2. Git Flow(中大型项目)
- 分支类型:
main:稳定生产环境代码。develop:集成开发分支。feature/*:功能开发分支。release/*:预发布分支。hotfix/*:紧急修复分支。
- 工具支持:使用
git-flow插件自动化流程。
3. GitHub Flow(持续交付)
- 所有开发基于
main分支进行。 - 功能通过 Pull Request(PR)合并,强调代码审查。
八、常见问题与解决方案
1. 误提交敏感信息
# 使用 BFG Repo Cleaner 清理历史
java -jar bfg.jar --delete-files passwords.txt repo.git
git push --force
2. 恢复误删的分支
# 查看所有操作记录
git reflog
# 找到被删除分支的最后一次提交哈希
git checkout -b recovered-branch a1b2c3d
3. 提交信息写错
git commit --amend -m "新的提交信息"
git push --force # 仅限未推送或协作分支允许强制推送
九、图形化工具推荐
-
VSCode 集成 Git
- 内置可视化操作界面,支持提交、推送、解决冲突。
- 插件推荐:GitLens(增强历史查看)、Git Graph(图形化分支树)。
-
GitKraken
- 直观的提交树和分支管理,支持 Git Flow。
-
SourceTree
- 免费工具,适合管理多个仓库。
建议从本地练习开始,逐步参与团队协作项目,实践中不断巩固知识!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)