您好,登录后才能下订单哦!
# Git的工作流程及常用的命令整理
## 目录
1. [Git概述](#1-git概述)
2. [Git工作流程](#2-git工作流程)
- 2.1 [集中式工作流](#21-集中式工作流)
- 2.2 [功能分支工作流](#22-功能分支工作流)
- 2.3 [Git Flow工作流](#23-git-flow工作流)
- 2.4 [Forking工作流](#24-forking工作流)
3. [Git常用命令详解](#3-git常用命令详解)
- 3.1 [仓库操作](#31-仓库操作)
- 3.2 [文件操作](#32-文件操作)
- 3.3 [分支操作](#33-分支操作)
- 3.4 [远程操作](#34-远程操作)
- 3.5 [撤销与回退](#35-撤销与回退)
- 3.6 [日志与比较](#36-日志与比较)
4. [Git最佳实践](#4-git最佳实践)
5. [总结](#5-总结)
---
## 1. Git概述
Git是Linus Torvalds于2005年开发的分布式版本控制系统,具有以下核心特点:
- **分布式架构**:每个开发者都有完整的代码仓库副本
- **高效性能**:本地操作不依赖网络,速度快
- **强大的分支系统**:创建/切换分支只需毫秒级时间
- **数据完整性**:采用SHA-1哈希算法保证数据不可篡改
---
## 2. Git工作流程
### 2.1 集中式工作流
```mermaid
graph LR
A[中央仓库] --> B[开发者克隆]
B --> C[本地提交]
C --> D[推送至中央仓库]
特点: - 类似SVN的单分支工作模式 - 适合小型团队或过渡阶段使用
操作流程:
1. git clone <repository>
2. 修改文件后git add
和git commit
3. git pull --rebase
(推荐使用rebase避免合并提交)
4. git push origin main
graph TD
A[main分支] --> B[创建feature分支]
B --> C[开发新功能]
C --> D[合并回main]
核心原则: - 每个新功能在独立分支开发 - 通过Pull Request进行代码审查
典型命令:
git checkout -b feature/login # 创建功能分支
git push -u origin feature/login # 首次推送分支
graph LR
A[main] --> B[release]
A --> C[hotfix]
B --> D[develop]
D --> E[feature]
分支类型: - main:生产环境代码 - develop:集成开发分支 - feature/:功能开发分支 - release/:预发布分支 - hotfix/*:紧急修复分支
常用操作:
git flow feature start payment # 启动新功能
git flow feature finish payment # 完成功能开发
适用场景: - 开源项目协作 - 无直接推送权限的项目
工作步骤:
1. Fork官方仓库到个人账号
2. git clone
个人fork的仓库
3. 创建功能分支开发
4. 推送至个人远程仓库
5. 创建Pull Request
命令 | 说明 | 示例 |
---|---|---|
git init |
初始化新仓库 | git init project-dir |
git clone |
克隆远程仓库 | git clone https://github.com/user/repo.git |
git remote |
管理远程仓库 | git remote -v |
# 添加文件到暂存区
git add index.html # 添加单个文件
git add . # 添加所有修改
# 提交更改
git commit -m "修复登录页面样式问题"
# 查看状态
git status -s # 简洁状态输出
分支管理:
git branch # 查看本地分支
git branch -a # 查看所有分支(含远程)
git checkout -b dev # 创建并切换分支
git merge feature # 合并feature分支
git branch -d old-branch # 删除已合并分支
变基操作:
git rebase main # 将当前分支变基到main
git rebase -i HEAD~3 # 交互式变基
# 推送分支
git push origin main --force # 强制推送(慎用)
# 获取更新
git fetch --prune # 获取远程更新并清理已删除分支
git pull origin main # 等价于fetch + merge
# 跟踪远程分支
git branch -u origin/feature # 设置当前分支跟踪远程feature分支
# 撤销工作区修改
git checkout -- file.txt
# 撤销暂存区文件
git reset HEAD file.txt
# 回退提交
git reset --soft HEAD~1 # 保留修改到暂存区
git reset --hard a1b2c3d # 彻底回退到指定提交
查看历史:
git log --graph --oneline -5 # 图形化显示最近5条提交
git log -p README.md # 查看文件修改历史
差异比较:
git diff # 工作区与暂存区差异
git diff --cached # 暂存区与最新提交差异
git diff HEAD~3 HEAD # 比较两个版本差异
<type>(<scope>): <subject>
# 示例
feat(user): 添加手机号注册功能
fix(api): 修复分页参数失效问题
推荐工作流程:
1. 开发前先git pull --rebase
2. 功能开发使用独立分支
3. 提交前运行测试用例
4. 编写有意义的提交信息
5. 使用git push --force-with-lease
替代强制推送
储藏更改:
git stash # 临时保存工作区
git stash pop # 恢复最近储藏
子模块管理:
git submodule add https://github.com/lib/library.git
git submodule update --init --recursive
Git作为现代软件开发的核心工具,掌握其工作流程和命令组合可以显著提升开发效率。建议:
git gc
优化仓库.gitignore
文件管理不需要版本控制的文件附:常用命令速查表
> # 创建并切换分支 > git checkout -b new-feature > > # 删除远程分支 > git push origin --delete old-branch > > # 修改最近提交信息 > git commit --amend > ``` (全文共计约3550字)
这篇文章采用Markdown格式编写,包含: 1. 结构化目录导航 2. 可视化流程图(需支持mermaid语法) 3. 命令代码块 4. 对比表格 5. 最佳实践建议 6. 速查表等实用内容
实际使用时可根据需要调整章节长度,补充具体案例说明。建议配合可视化Git工具(如GitKraken、SourceTree)进行实践学习。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。