如何列出 Git 中已合并到主分支的所有本地分支

GitGitBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Git 是一个强大的版本控制系统,它允许开发者有效地管理代码并进行协作。在 Git 中,一个常见的任务是列出所有已合并到主分支的本地分支。这些信息对于清理本地仓库和维护一个有条理的代码库很有用。在本教程中,我们将指导你完成列出 Git 中所有已合并到主分支的本地分支的过程。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BranchManagementGroup -.-> git/branch("Handle Branches") git/BranchManagementGroup -.-> git/checkout("Switch Branches") git/BranchManagementGroup -.-> git/merge("Merge Histories") git/BranchManagementGroup -.-> git/log("Show Commits") git/BranchManagementGroup -.-> git/shortlog("Condensed Logs") subgraph Lab Skills git/branch -.-> lab-417747{{"如何列出 Git 中已合并到主分支的所有本地分支"}} git/checkout -.-> lab-417747{{"如何列出 Git 中已合并到主分支的所有本地分支"}} git/merge -.-> lab-417747{{"如何列出 Git 中已合并到主分支的所有本地分支"}} git/log -.-> lab-417747{{"如何列出 Git 中已合并到主分支的所有本地分支"}} git/shortlog -.-> lab-417747{{"如何列出 Git 中已合并到主分支的所有本地分支"}} end

理解 Git 分支

Git 是一个分布式版本控制系统,它允许开发者有效地管理和跟踪其代码库中的更改。Git 中的一个基本概念是分支,它代表了仓库中一条独立的开发线路。

什么是 Git 分支?

Git 分支是一个轻量级的、可移动的指针,指向仓库历史中的一个特定提交。分支允许开发者同时处理不同的功能或修复 bug,而不会干扰主代码库,即所谓的 mastermain 分支。

为什么要使用 Git 分支?

在 Git 中使用分支有几个好处:

  1. 并行开发:分支使多个开发者能够同时处理不同的功能或修复 bug,而不会影响主代码库。
  2. 实验:开发者可以创建新分支来尝试想法或探索新方法,而不会危及主分支的稳定性。
  3. 协作:分支通过允许开发者处理单独的功能,然后将他们的更改合并回主分支来促进协作。
  4. 更轻松的调试:如果在特定分支中引入了一个 bug,可以很容易地将其隔离并修复,而不会影响代码库的其他部分。

创建和切换分支

要在 Git 中创建一个新分支,可以使用 git branch 命令,后跟新分支的名称:

git branch feature/new-functionality

要切换到新创建的分支,可以使用 git checkout 命令:

git checkout feature/new-functionality

或者,你可以使用 git checkout -b 命令在一步中创建并切换到一个新分支:

git checkout -b feature/new-functionality

合并分支

一旦某个功能或 bug 修复工作完成,该分支就可以合并回主分支。这是使用 git merge 命令完成的:

git checkout main
git merge feature/new-functionality

这将把 feature/new-functionality 分支中的更改集成到 main 分支中。

列出已合并到主分支的本地分支

当你在 Git 仓库中处理不同的功能或修复 bug 时,可能会积累多个分支。随着时间的推移,其中一些分支可能会被合并到 mastermain 分支中。记录哪些本地分支已被合并,有助于维护一个干净且有条理的仓库。

使用 git branch --merged

Git 提供了 git branch --merged 命令来列出所有已合并到当前分支的本地分支。当你想要识别哪些分支可以安全删除时,这特别有用,因为它们已经被合并到主代码库中了。

要列出所有已合并到 master 分支的本地分支,可以运行以下命令:

git branch --merged master

这将显示所有已合并到 master 分支的本地分支列表。

理解输出

git branch --merged 命令的输出会向你展示一个分支名称列表,当前分支会用星号(*)标记。例如:

  feature/new-functionality
* main
  bugfix/issue-123

在这个例子中,feature/new-functionalitybugfix/issue-123 分支已经被合并到了 main 分支,即当前分支。

删除已合并的分支

一旦你确定了已合并到 master 分支的本地分支,就可以使用 git branch -d 命令安全地删除它们。这有助于保持你的仓库干净且有条理。

git branch -d feature/new-functionality
git branch -d bugfix/issue-123

如果一个分支没有被合并,Git 会阻止你删除它,除非你使用 -D 标志,这将强制删除。

利用已合并分支列表

已合并到 master 分支的本地分支列表可以通过多种方式加以利用,以维护一个干净且有条理的 Git 仓库。

清理已合并分支

已合并分支列表的一个主要用例是通过删除已合并的分支来清理你的本地仓库。这有助于保持仓库整洁,并减少分支列表中的混乱。

git branch --merged master | grep -v "master" | xargs git branch -d

此命令首先列出所有已合并到 master 分支的本地分支,然后排除 master 分支本身,最后删除其余已合并的分支。

识别未合并分支

除了列出已合并的分支外,你还可以使用 git branch --no-merged 命令来识别尚未合并到 master 分支的分支。这对于确定哪些分支仍需要合并或处理很有用。

git branch --no-merged master

此命令将显示所有尚未合并到 master 分支的本地分支列表。

自动化分支管理

为了进一步简化你的分支管理流程,你可以创建一个脚本或别名,将 git branch --mergedgit branch -d 命令结合起来。这可以帮助你快速识别并删除已合并的分支,使你的仓库维护更加高效。

例如,你可以在 .gitconfig 文件中创建一个 Git 别名:

[alias]
    clean-merged = "!git branch --merged master | grep -v \"master\" | xargs git branch -d"

然后,你可以运行 git clean-merged 来删除所有已合并到 master 分支的本地分支。

通过利用已合并分支列表,你可以保持 Git 仓库的条理,减少混乱,并专注于当前的开发工作。

总结

通过遵循本教程中概述的步骤,你将学习如何高效地列出所有已合并到主分支的本地 Git 分支。这些知识将使你能够更好地管理你的 Git 工作流程,识别并删除不必要的分支,以及维护一个干净且有条理的代码库。掌握这项 Git 技术将简化你的开发过程并提高你的整体生产力。