图解Git——分支管理《Pro Git》

简介: 分支管理是 Git 中的重要机制,支持并行开发和清晰的工作流。常用命令包括:`git branch` 列出所有分支,`git branch -v` 查看最后一次提交,`git branch --merged` 和 `git branch --no-merged` 分别查看已合并和未合并的分支。创建新分支用 `git branch <branch-name>`,删除分支用 `git branch -d`(已合并)或 `-D`(强制删除)。建议定期清理已完成任务的分支,保持代码库整洁,并使用有意义的分支命名规范。注意强制删除未合并分支时可能丢失数据。

分支管理

1. 常用分支管理命令

  1. 列出所有分支: git branch
    1. 当前检出的分支前会标记一个 *
  1. 查看分支最后一次提交: git branch -v
  2. 查看已合并到当前分支的分支: git branch merge
    1. 可以用来确认哪些分支已经合并,可以安全删除。
  1. 查看未合并到当前分支的分支: git branch --no-merged
    1. 列出包含未合并工作的分支。

2. 删除分支

  1. 删除已合并的分支: git branch -d <branch-name>
    1. 适用于已完成工作且合并的分支。
  1. 强制删除未合并的分支: git branch -D <branch-name>
    1. 注意:此操作将丢失未合并的工作,需谨慎。

3. 高级用法

  1. 查看某个分支的合并状态(非当前分支): git branch --no-merged <branch-name>
    1. 示例:查看哪些分支尚未合并到 mastergit branch --no-merged master
  1. 切换分支: git checkout <branch-name>

4. 提示

  • --merged --no-merged 参数
    • 默认基于当前分支。
    • 可指定其他分支来查看合并状态。

5. ⭐总结

5.1. 概念/定义

Git 分支是版本控制的重要机制,可以让开发者在不同分支上并行工作,而不会互相干扰。


5.2. 基本操作

以下是一些常用分支管理命令:

5.2.1. 查看分支

  • git branch:列出所有本地分支,当前分支前有 * 标记。
  • git branch -v:显示分支及其最后一次提交的信息。

5.2.2. 创建分支

  • git branch <branch-name>:创建新分支。

5.2.3. 删除分支

  • git branch -d <branch-name>:删除已合并的分支。
  • git branch -D <branch-name>:强制删除未合并的分支。

5.2.4. 查看分支合并状态

  • git branch --merged:列出已合并到当前分支的分支。
  • git branch --no-merged:列出未合并到当前分支的分支。

5.2.5. 查看其他分支的合并状态

  • git branch --no-merged <branch-name>:查看哪些分支未合并到指定分支。

5.3. 优点/好处

  • 并行开发:支持多人同时开发,互不影响。
  • 清晰的工作流:分支合并状态清晰,便于管理工作进度。
  • 安全性:删除未合并分支时有提示,防止误操作导致数据丢失。

5.4. 风险/注意事项

  • 强制删除风险:使用 git branch -D 删除未合并分支时,未保存的更改会丢失。
  • 误合并:未仔细检查分支合并状态可能导致误操作。

5.5. 使用建议

  • 分支命名规范:使用有意义的名称(如 feature/xxxbugfix/xxx)便于识别。
  • 定期清理分支:删除已完成任务的分支,保持代码库整洁。
  • 慎用强制删除:在强制删除未合并分支前,确保需要丢弃的工作已备份或无用。

5.6. 配置建议(如适用)

  • 设置默认分支为 mainmaster,明确合并主线的目标。
  • 利用 Git Hooks 或 CI 工具自动检测分支合并状态,提升管理效率。

目录
相关文章
|
9月前
|
API 开发工具 git
《Git 简易速速上手小册》第3章:分支管理(2024 最新版)
《Git 简易速速上手小册》第3章:分支管理(2024 最新版)
123 1
|
27天前
|
开发工具 git
图解Git——分支的新建与合并《Pro Git》
在Git开发中,新建与合并分支是常见的操作。以实际开发为例:为实现新需求创建分支`iss53`进行开发;遇紧急Bug时,切换至线上分支创建`hotfix`修复并合并回线上分支,再切换回`iss53`继续工作。完成`iss53`后,切换到`master`合并。若出现冲突,使用`git status`查看,手动编辑解决冲突后标记为已解决并提交。图形化工具如`git mergetool`也可辅助解决冲突。
44 9
|
27天前
|
开发工具 git 开发者
图解Git——分支简介《Pro Git》
Git 分支是其核心特性之一,允许开发者从主开发线分离工作,避免干扰主线。传统版本控制系统创建分支效率低,而Git的分支创建和切换非常轻量高效。
69 9
|
1月前
|
安全 Shell Linux
Git 基础——《Pro Git》
Git 是一个分布式版本控制系统,支持多种操作来管理和跟踪代码库的变化。以下是常用的操作和命令:
118 37
|
27天前
|
开发工具 git 开发者
图解Git——分布式Git《Pro Git》
分布式工作流程主要分为三种模式:集中式工作流、集成管理者工作流和主管与副主管工作流。集中式工作流中,所有开发者同步同一个中央仓库,通过拉取和提交协作;集成管理者工作流中,开发者拥有自己的仓库,通过 `fork` 和请求合并进行协作;主管与副主管工作流适用于大型项目,由主管最终合并代码,副主管负责各自模块。贡献代码时,需考虑活跃贡献者数量、工作流程、提交权限等因素,确保代码合并成功并遵循提交准则。
40 11
|
27天前
|
网络安全 Apache 开发工具
图解Git——服务器上的Git《Pro Git》
Git 远程仓库及通信协议简介:远程仓库为团队协作提供平台,支持共享代码。常见形式为裸仓库,仅保存 Git 元数据。Git 支持多种协议,包括本地协议(适合局域网)、HTTP/HTTPS(推荐智能 HTTP,安全易用)、SSH(企业内部协作首选)和 Git 协议(高效只读访问)。选择协议需根据协作需求、安全性和配置难度权衡。此外,搭建 Git 服务器涉及创建裸仓库、上传至服务器、初始化共享仓库等步骤。生成 SSH 公钥、配置服务器及使用 GitWeb 或 GitLab 等工具可进一步增强功能。第三方托管服务如 GitHub 提供便捷的托管选项,适合快速启动和开源项目。总结而言,自行运行服务器提
37 11
|
27天前
|
自然语言处理 开发工具 git
图解Git——变基《Pro Git》
变基(rebase)是Git中用于将一系列提交“重新播放”到另一个分支上的操作,使提交历史更加线性整洁。其基本操作为`git rebase &lt;目标分支&gt;`,可将当前分支的修改基于目标分支重新应用;复杂场景下使用`git rebase --onto &lt;新基底&gt; &lt;旧基底&gt; &lt;分支&gt;`,将特定提交从旧基底移动到新基底。
45 10
|
27天前
|
存储 项目管理 开发工具
图解Git——分支开发工作流《Pro Git》
分支开发工作流利用Git的分支功能,支持灵活的项目管理。长期分支如`master`和`develop`分别保存稳定和开发中的代码;短期主题分支用于开发单一特性或修复问题,完成后合并到主分支。此模式确保代码稳定性,支持并行开发、便于审查和灵活调整。建议维护明确的长期分支,保持主题分支短小精悍,并定期清理无用分支。配置上可保护关键分支,遵循命名规范。
52 7
|
27天前
|
存储 缓存 Java
图解Git——远程分支《Pro Git》
远程分支是 Git 中用于管理分布式协作的关键概念。远程引用指向远程仓库中的分支和标签,常用 `git ls-remote` 或 `git remote show` 查看。日常开发中,通常使用远程跟踪分支(如 `origin/main`)与远程分支交互,简化远程仓库状态的管理和使用。远程跟踪分支记录远程分支的状态,但本身只读。
25 6
|
2月前
|
运维 测试技术 持续交付
代码管理的艺术:你的团队是否还在为 Git 分支管理头疼?
本文回顾了作者从2~3人初创团队到百人技术团队的经历,分享了代码管理工具从无到SVN再到Git的演变。重点介绍了Git Flow和GitHub Flow两种常用的Git分支管理模型,分析了它们的适用场景和优缺点。Git Flow适合中大型项目,而GitHub Flow则更适合小型团队和Web应用开发。
105 0