如果您要开发任何类型的软件或网络应用程序,使用 Git 几乎是您工作流程中必不可少的一环。
分布式版本控制系统几乎是协调团队编码工作的唯一途径。为此,Git 有一套简单的命令集,你可以很快掌握,但它可能并不总是那么直观。
尤其是在对分支执行 git rename
等情况下。
团队合作需要交流,而你的分支名称既然是公开的,就应该有足够的描述和清晰度。这可能会与快速工作的普遍需求相冲突。因此,你在开始编写代码时为分支快速命名的约定可能需要调整,以更好地适应你的项目。
在本篇文章中,我们将向你展示如何在分支上执行 git rename
。首先,让我们来谈谈什么是 Git 分支,以及在哪些情况下需要重命名分支。
什么是 Git 分支(为什么要重命名?)
Git 的版本控制采用分支方式。你会有一个主仓库,其中包含项目的所有分支,包括主分支(稍后详述)。
使用 Git 的部分好处是,你可以复制主分支,编写代码,然后在最终确定所有内容后再合并这些修改。
然而,命名分支是许多开发者匆忙完成的一步。在 Git 中更改分支名称有很多原因:清晰:
- 清晰度:你要确保分支的代码改动及其作用完全清晰。这在合并甚至删除分支时都很重要。如果删除了错误的分支或忘记了它的名字,那就无法挽回了。
- 一致性:你的分支可能并不遵循团队设定的命名惯例。这意味着你必须在以后修改分支名称。
- 现代标准:如果是传统项目,或者是团队内部长期关注的项目,分支可能与当前的文化敏感性约定不符。例如,有一种流行的做法是将主分支从 “master” 改为 “main” 或 “trunk”,以避免提及奴隶制度。
由于这些原因(还有其他原因),你经常需要对某个分支执行 git rename
。
接下来,我们将教你如何操作。
如何重命名 Git 分支
在分支上运行 git rename
时,你必须同时考虑本地和远程(如 GitHub)仓库。好消息是,我们接下来要介绍的流程将涵盖你成功所需的所有变体。
首先,我们来介绍如何定位和更改分支名称。这将包括如何使用命令标志。然后,我们将了解如何确保远程版本库与本地版本库相匹配。
1. 使用 git checkout
和 git branch
命令
首要任务是找到要重命名的分支。您可以使用以下命令:
git checkout current-name
在使用 current-name
的地方,应该加上分支的名称。如果不知道分支名称,或想查看完整的分支列表(也许是为了检查整个项目的约定),可以使用 git branch --list
或 git branch -a
。
导航到 Git 仓库,并列出其中的分支。
进入正确的分支后,可以用下面的方法重命名它:
git branch -m new-name
同样,你要确保在这里使用的是具体的分支名称,而不是我们的占位符。 -m
标志的意思是 “移动”,是命令中导致重命名的元素。
在 Git 仓库中重命名分支。
如果你选择的新分支名称已经存在,你可以使用 -M
来强制更改。在 Windows 机器上,如果分支名称包含大小写字母,也可以使用这种方法。
确认更改后,使用 git status
查看新名称是否适用于您的分支:
使用 git status 检查 Git 是否已重命名。
不过,如果你不想用 git checkout
,也完全没必要。让我们来详细了解一下。
1(a). 不使用 git checkout
重命名 Git 分支
此方法只有在您位于软件仓库主分支时才有效。否则,您就需要使用 git checkout
才能进入主分支。
无论如何,您都可以使用 git status
查看您在仓库中的当前位置。更改分支名称的命令与上一个方法类似,但这次要将当前分支名称和新分支名称合并:
git branch -m current-name new-name
运行命令后,可以查看分支列表作为确认。
2. 将重命名的分支推送到远程版本库
虽然这种方法适用于本地 repo,但对于远程 repo,你还需要做更多。你经常需要在项目中处理远程 repo,这一步可不能忘了。
如果跳过这一部分,新分支仍会引用其旧的 “上游” 分支名称。诀窍就是从远程 repo 中移除旧分支,然后将新分支推向上游。
第一步是重命名本地分支,然后可以依次运行几个命令。
首先,删除旧分支:
git push origin --delete old-branch
…然后推送新的:
git push origin -u new-branch
作为替代方案,您可以使用以下方法覆盖上游分支名称:
git push origin: old-branch new-branch
git push origin -u new-branch
再次运行 git status
查看新分支是否指向自己的引用,而不是旧分支。如果引用指向的是旧分支,可以用 git branch --unset-upstream
来修复。
小结
Git 是一种直观而强大的方法,可用于对项目代码进行分布式版本控制。
它最灵活的优势之一就是既能用于本地版本库,也能用于远程版本库。不过,一些简单的任务(如重命名分支)需要花费比其他任务更多的心思。
本文将讨论如何在本地和远程仓库中使用 git rename
分支。虽然命令本身简单明了,但你必须应用一些不同的命令来确保本地和远程仓库相匹配。否则,你进行的任何合并都可能会出现错误,或错误引用旧的或不存在的版本。
原文地址:https://www.wbolt.com/git-rename-branch.html