iFluxArt

博客导航友链
© 2025 iFluxArt 保留所有权利
目录
第一部分:Git 基础概念
1.1 Git 简介
1.2 核心概念
第二部分:基础操作
2.1 仓库初始化
2.2 文件操作
2.3 撤销操作
第三部分:分支管理
3.1 分支基础
3.2 分支合并
3.3 冲突解决
第四部分:远程仓库
4.1 远程仓库管理
4.2 推送和拉取
第五部分:团队协作工作流
5.1 Git Flow 工作流
5.2 GitHub Flow 工作流
5.3 最佳实践
第六部分:高级技巧
6.1 交互式变基
6.2 储藏 (Stash)
6.3 标签管理
第七部分:故障排除
7.1 常见问题
总结
相关资源
分类
标签
品牌案例科技品牌快捷键中英对照表术语对照汽车品牌食品饮料服装文案运动品牌读书笔记广告理论办公软件文案美妆护肤视频剪辑部署最佳实践广告文案电商零售创意金融支付写作GitnpmCSS动画代码质量HTMLReactJavaScript组件开发静态站点剧本写作电影创作创作指南真人秀WindowsAcrobatAfter EffectsAuditionIllustratorLightroomMedia EncoderPhotoshopPremiere ProFinal Cut Pro设计工具直播电商私域运营运营策略私域流量DeepSeek运维GeminiCLIGoogle AI配置指南提示词工程AI交互MetaPayEasy亚马逊京东字节跳动滴滴百度网易美团腾讯阿里巴巴IBM思科甲骨文佳能大疆尼康科大讯飞AppleGoogleHTCOPPOrealmevivo一加三星华为小米微软索尼联想荣耀魅族招聘小鹏特斯拉理想蔚来CELEBRITYMISSOSEOK baby步履不停丰田奔驰奥迪宝马本田唯品会拼多多AMD惠普戴尔英伟达英特尔兰蔻完美日记雅诗兰黛谐音梗安踏李宁耐克阿迪达斯微信支付支付宝伊利农夫山泉可口可乐星巴克百事可乐大卫·奥格威教程威廉·伯恩巴克路克·苏立文约瑟夫·休格曼标题技巧版本控制工作流程VS Code开发环境插件配置Docker容器化GitHubSSH包管理pnpmTailwind CSS动画库Python规范工程实践Markdown语法对比动画工具前端开发CSSFAQ编程基础Web框架项目管理Astro评论系统GitHub集成React组件Hexo静态博客主题开发HugoGo语言Next.js技术栈VitePressVue3文档站点开发指南Monorepo剧本结构动态结构悬念设计叙事技巧人物设计戏剧冲突导演思维写作技巧结局设计故事创作电影节国际电影电影奖项电视节目综艺节目探险节目电视制作电影结构剧作分析影像构成电影分析精神分析叙事研究经典台词诗意台词中国电影Cloudflare网络安全VPNNVIDIA显卡驱动AI工具Obsidian插件知识管理V2rayN代理工具网络配置鼠标设置注册表修改显示设置高分屏Lightroom ClassicFCP邀请码内测PDF工具动画制作音频编辑照片处理视频编码Keynote演示软件ExcelPowerPointWordWPS剪映微信公众号账号注册平台认证抖音小店店铺运营电商运营抖音运营账号定位内容策略运营思维商业策略数据驱动人货场直播间运营直播合规违禁词平台规则直播带货运营流程直播脚本话术模板直播技巧运营指南微信生态内容创作行业分类成功案例方法论商业价值变现模式会员运营用户分层商业变现Waves音频插件混音制作
相关文章

手把手教你配置 SSH 密钥连接 GitHub

将 Monorepo 中的 Packages 发布到 npm 的完整指南

Google Python 编码规范指南

VS Code 开发环境配置

开发最佳实践

Git 版本控制与工作流程

2024年12月4日
5326 字
预计阅读 22 分钟

Git 是现代软件开发中最重要的版本控制系统。掌握 Git 的核心概念和工作流程对于任何开发者都至关重要。

第一部分:Git 基础概念

1.1 Git 简介

Git 是一个分布式版本控制系统,具有以下特点:

  • 分布式:每个开发者都有完整的代码历史
  • 快速:大部分操作都在本地进行
  • 数据完整性:使用 SHA-1 哈希确保数据完整性
  • 分支管理:轻量级的分支创建和合并

1.2 核心概念

工作区、暂存区、版本库:

Plaintext
工作区 (Working Directory)
    ↓ git add
暂存区 (Staging Area)
    ↓ git commit
版本库 (Repository)
    ↓ git push
远程仓库 (Remote Repository)

文件状态:

  • 未跟踪 (Untracked):新文件,Git 不知道
  • 已修改 (Modified):文件已修改但未暂存
  • 已暂存 (Staged):文件已添加到暂存区
  • 已提交 (Committed):文件已保存到版本库

第二部分:基础操作

2.1 仓库初始化

Bash
# 初始化新仓库
git init

# 克隆远程仓库
git clone https://github.com/user/repo.git
git clone git@github.com:user/repo.git

# 查看仓库状态
git status
git status -s  # 简洁输出

2.2 文件操作

Bash
# 添加文件到暂存区
git add file.txt
git add .                    # 添加所有文件
git add *.js                 # 添加所有 js 文件
git add -A                   # 添加所有变更

# 提交更改
git commit -m "提交信息"
git commit -am "添加并提交"   # 跳过暂存区

# 查看提交历史
git log
git log --oneline           # 简洁格式
git log --graph             # 图形化显示
git log --author="张三"      # 按作者筛选

2.3 撤销操作

Bash
# 撤销工作区修改
git checkout -- file.txt
git restore file.txt        # Git 2.23+

# 撤销暂存区修改
git reset HEAD file.txt
git restore --staged file.txt  # Git 2.23+

# 撤销提交
git reset --soft HEAD~1     # 保留修改在暂存区
git reset --mixed HEAD~1    # 保留修改在工作区
git reset --hard HEAD~1     # 完全撤销修改

# 修改最后一次提交
git commit --amend -m "新的提交信息"

第三部分:分支管理

3.1 分支基础

Bash
# 查看分支
git branch                  # 本地分支
git branch -r               # 远程分支
git branch -a               # 所有分支

# 创建分支
git branch feature-login
git checkout -b feature-login  # 创建并切换
git switch -c feature-login    # Git 2.23+

# 切换分支
git checkout main
git switch main             # Git 2.23+

# 删除分支
git branch -d feature-login    # 安全删除
git branch -D feature-login    # 强制删除

3.2 分支合并

Bash
# 合并分支
git checkout main
git merge feature-login

# 变基合并
git checkout feature-login
git rebase main
git checkout main
git merge feature-login

# 压缩合并
git merge --squash feature-login
git commit -m "合并 feature-login 分支"

3.3 冲突解决

Bash
# 查看冲突文件
git status

# 手动解决冲突后
git add conflicted-file.txt
git commit -m "解决合并冲突"

# 使用合并工具
git mergetool

# 取消合并
git merge --abort

第四部分:远程仓库

4.1 远程仓库管理

Bash
# 查看远程仓库
git remote -v

# 添加远程仓库
git remote add origin https://github.com/user/repo.git

# 修改远程仓库 URL
git remote set-url origin git@github.com:user/repo.git

# 删除远程仓库
git remote remove origin

4.2 推送和拉取

Bash
# 推送到远程仓库
git push origin main
git push -u origin main     # 设置上游分支

# 从远程仓库拉取
git pull origin main
git fetch origin            # 只获取不合并
git merge origin/main       # 手动合并

# 推送分支
git push origin feature-login
git push --set-upstream origin feature-login

第五部分:团队协作工作流

5.1 Git Flow 工作流

Plaintext
main (生产分支)
├── develop (开发分支)
│   ├── feature/user-auth (功能分支)
│   ├── feature/payment (功能分支)
│   └── release/v1.2.0 (发布分支)
└── hotfix/critical-bug (热修复分支)

分支说明:

  • main:生产环境代码
  • develop:开发环境代码
  • feature/:功能开发分支
  • release/:发布准备分支
  • hotfix/:紧急修复分支

5.2 GitHub Flow 工作流

Bash
# 1. 从 main 创建功能分支
git checkout main
git pull origin main
git checkout -b feature/new-feature

# 2. 开发并提交
git add .
git commit -m "实现新功能"

# 3. 推送分支
git push origin feature/new-feature

# 4. 创建 Pull Request
# 在 GitHub 上创建 PR

# 5. 代码审查和合并
# 审查通过后合并到 main

# 6. 删除功能分支
git checkout main
git pull origin main
git branch -d feature/new-feature

5.3 最佳实践

提交信息规范:

Bash
# 格式:<type>(<scope>): <subject>
git commit -m "feat(auth): 添加用户登录功能"
git commit -m "fix(payment): 修复支付金额计算错误"
git commit -m "docs(readme): 更新安装说明"
git commit -m "style(header): 调整导航栏样式"
git commit -m "refactor(utils): 重构工具函数"
git commit -m "test(auth): 添加登录功能测试"

分支命名规范:

Bash
# 功能分支
feature/user-authentication
feature/payment-integration

# 修复分支
bugfix/login-error
hotfix/security-patch

# 发布分支
release/v1.2.0
release/2024-q1

第六部分:高级技巧

6.1 交互式变基

Bash
# 交互式变基最近 3 个提交
git rebase -i HEAD~3

# 在编辑器中可以:
# pick:保留提交
# reword:修改提交信息
# edit:修改提交内容
# squash:合并到前一个提交
# drop:删除提交

6.2 储藏 (Stash)

Bash
# 储藏当前修改
git stash
git stash save "临时修改"

# 查看储藏列表
git stash list

# 应用储藏
git stash apply
git stash apply stash@{1}

# 弹出储藏
git stash pop

# 删除储藏
git stash drop stash@{1}
git stash clear  # 清空所有储藏

6.3 标签管理

Bash
# 创建标签
git tag v1.0.0
git tag -a v1.0.0 -m "版本 1.0.0"

# 查看标签
git tag
git show v1.0.0

# 推送标签
git push origin v1.0.0
git push origin --tags

# 删除标签
git tag -d v1.0.0
git push origin --delete v1.0.0

第七部分:故障排除

7.1 常见问题

撤销已推送的提交:

Bash
# 方法1:创建反向提交
git revert HEAD

# 方法2:强制推送(危险)
git reset --hard HEAD~1
git push --force-with-lease origin main

恢复删除的分支:

Bash
# 查找分支的最后提交
git reflog

# 恢复分支
git checkout -b recovered-branch <commit-hash>

清理仓库:

Bash
# 清理未跟踪文件
git clean -f
git clean -fd  # 包括目录

# 垃圾回收
git gc
git gc --aggressive

总结

掌握 Git 的关键要点:

  1. 理解核心概念:工作区、暂存区、版本库的关系
  2. 熟练基础操作:add、commit、push、pull 等命令
  3. 掌握分支管理:创建、合并、删除分支
  4. 选择合适工作流:根据团队规模选择工作流程
  5. 遵循最佳实践:规范的提交信息和分支命名
  6. 学会故障排除:处理冲突和恢复数据

相关资源

  • Git 官方文档
  • Pro Git 书籍
  • GitHub 工作流指南
  • Git 可视化学习
版权声明

本文为作者原创文章,遵循 CC BY-NC-ND 4.0 协议。

  • 署名:转载时请注明出处
  • 非商业性使用:禁止商业用途
  • 禁止演绎:不得修改原文
查看完整许可证