Git 教程:重命名分支、删除分支、查看分支作者
创始人
2024-03-02 11:17:18
0

掌握管理本地/远程分支等最常见的 Git 任务。

Git 的主要优势之一就是它能够将工作“分叉”到不同的分支中。

如果只有你一个人在使用某个存储库,分支的好处是有限的。但是,一旦你开始与许多其他贡献者一起工作,分支就变得必不可少。Git 的分支机制允许多人同时处理一个项目,甚至是同一个文件。用户可以引入不同的功能,彼此独立,然后稍后将更改合并回主分支。那些专门为一个目的创建的分支,有时也被称为 主题分支 topic branch ,例如添加新功能或修复已知错误。

当你开始使用分支,了解如何管理它们会很有帮助。以下是开发者在现实世界中使用 Git 分支执行的最常见任务。

重命名分支

有时候,你或许会错误地命名了一个分支,或者你会想要在内容合并到主分支后,使用同一个分支在不同的错误或任务之间切换。在这种情况下,重命名主题分支就会很有帮助。

重命名本地分支

1、重命名本地分支:

$ git branch -m  

当然,这只会重命名你的分支副本。如果远程 Git 服务器上存在该分支,请继续执行后续步骤。

2、推送这个新分支,从而创建一个新的远程分支:

$ git push origin 

3、删除旧的远程分支:

$ git push origin -d -f 

重命名当前分支

当你要重命名的分支恰好是当前分支时,你不需要指定旧的分支名称。

1、重命名当前分支:

$ git branch -m 

2、推送新分支,从而创建一个新的远程分支:

$ git push origin 

3、删除旧的远程分支:

$ git push origin -d -f 

使用 Git 删除本地和远程分支

为了保持存储库的整洁,通常建议你在确保已将内容合并到主分支后,删除临时分支。

删除本地分支

删除本地分支只会删除系统上存在的该分支的副本。如果分支已经被推送到远程存储库,它仍然可供使用该存储库的每个人使用。

1、签出存储库的主分支(例如 mainmaster):

$ git checkout 

2、列出所有分支(本地和远程):

$ git branch -a

3、删除本地分支:

$ git branch -d 

要删除所有本地主题分支并仅保留 main 分支:

$ git branch | grep -v main | xargs git branch -d

删除远程分支

删除远程分支只会删除远程服务器上存在的该分支的副本。如果你想撤销删除,也可以将其重新推送到远程(例如 GitHub),只要你还有本地副本即可。

1、签出存储库的主分支(通常是 mainmaster):

$ git checkout 

2、列出所有分支(本地和远程):

$ git branch -a

3、删除远程分支:

$ git push origin -d 

查看远程主题分支的作者

如果你是存储库管理员,你可能会有这个需求,以便通知未使用分支的作者它将被删除。

1、签出存储库的主分支(例如 mainmaster):

$ git checkout 

2、删除不存在的远程分支的分支引用:

$ git remote prune origin

3、列出存储库中所有远程主题分支的作者,使用 --format 选项,并配合特殊的选择器来只打印你想要的信息(在本例中,%(authorname)%(refname) 分别代表作者名字和分支名称):

$ git for-each-ref --sort=authordate --format='%(authorname) %(refname)' refs/remotes

示例输出:

tux  refs/remotes/origin/dev
agil refs/remotes/origin/main

你可以添加更多格式,包括颜色编码和字符串操作,以便于阅读:

$ git for-each-ref --sort=authordate \
    --format='%(color:cyan)%(authordate:format:%m/%d/%Y %I:%M %p)%(align:25,left)%(color:yellow) %(authorname)%(end)%(color:reset)%(refname:strip=3)' \
    refs/remotes

示例输出:

01/16/2019 03:18 PM tux      dev
05/15/2022 10:35 PM agil     main

你可以使用 grep 获取特定远程主题分支的作者:

$ git for-each-ref --sort=authordate \
    --format='%(authorname) %(refname)' \
    refs/remotes | grep 

熟练运用分支

Git 分支的工作方式存在细微差别,具体取决于你想要分叉代码库的位置、存储库维护者如何管理分支、 压扁 squashing 、 变基 rebasing 等。若想进一步了解该主题,你可以阅读下面这三篇文章:


via: https://opensource.com/article/22/5/git-branch-rename-delete-find-author

作者:Agil Antony 选题:lkxed 译者:lkxed 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

X平台正式开源推荐算法
据1月20日声明,马斯克旗下社交媒体平台X正式将新的平台算法开源,...
2026-01-20 17:19:29
十方融海小智AI接入设备破...
近日,深圳科技企业十方融海传来消息,其自主研发的小智AI接入硬件设...
2026-01-09 19:17:51
腾讯混元开源翻译模型1.5...
12月30日,腾讯混元宣布推出并开源翻译模型1.5,共包含两个模型...
2025-12-30 20:46:31
开源技术实训室——职院开源...
一、开源技术实训室概述 (一)定义与定位 开源技术实训室是一个基...
2025-12-29 08:46:36
InterDigital已...
(全球TMT2025年10月31日讯)InterDigital 1...
2025-10-31 12:15:39
开源快讯 | 近期开源资讯...
开源生态建设加速技术创新,促进全球协作,是科技发展的强大驱动力,其...
2025-10-31 11:44:04

热门资讯

如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Textual:为 Pytho... 快速入门使用 TextualPython 在 Linux 上有像 TkInter 这样的优秀 GUI...
硬核观察 #1245 Open... #1 OpenAI 悄然删除禁止将 ChatGPT 用于 “军事和战争” 的禁令在 1 月 10 日...
使用时间序列数据,用开源工具助... InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。收集到...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
硬核观察 #1249 LG 洗... #1 LG 洗衣机每天上传近 4GB 的数据?一个名为 Johnie 的 LG 洗衣机用户发现,他的...
2024 年 Linux 和开... 让我们尝试预测未来吧!新的一年快乐,朋友们 ✨2024 年的钟声已经敲过,我们有必要去预见一下将塑造...