在 git 中替换 master

2025-05-27

在 git 中替换 master

主/奴隶教派

主人/奴隶的称谓在科技领域很常见。主人/奴隶是一个带有压迫性的比喻,指的是奴隶制。这些比喻在描述科技概念时并不恰当,也不准确。使用这些比喻会抹去奴隶制的历史,并将其置于一个不属于它的语境中。

更新:不知出于什么原因,人们似乎对此有所抵触……Git 的 master 模式历来与 master/slave 模式紧密相关。它的名字来源于 BitKeeper。来源:这里

更新 2Github 正在寻求替换主词

更新3:这件事闹得沸沸扬扬。我得好好反思一下这个话题。我仍然认为这个词应该从git里删掉。就这样。然而,我不是提出这种话题的合适人选。我在这个过程中造成了一些伤害,对此我深表歉意。我决定把这篇文章留待问责。我会努力学会闭嘴,优先考虑黑人的声音。

词语很重要。即使在技术环境中,我们用来定义概念的词语也非常重要。Git 是仍然使用“ master”一词的环境之一。但是,去掉它并不那么复杂。我们需要做两件事:

  • 在本地和远程的现有分支上替换单词
  • 修改你的 git 配置,在运行时不使用master这个词git init

让我们从第一点开始。

从现有项目中替换 master

首先,我们必须在本地更改我们的主分支。

将 master 更改为 principal

我这里有一个带有主分支的项目。我正在运行git branch -m master principal将主分支重命名为主要分支。此命令会保留分支的历史记录,因此您不会丢失任何内容!

注意:我选择将分支重命名为principal。您也可以选择其他名称。但必须符合您和您的团队的理解。

运行此命令会通过添加git push -u origin principal分支来更新远程仓库-u参数还会设置上游。

更改 Github 上的默认分支

现在,我还需要更改Github 上的默认分支。在你的仓库页面中,点击“设置”选项卡,然后点击左侧菜单中的“分支”。你可以在这里更新默认分支:

更新 Github 上的默认分支

大功告成!如果你git log在主分支中运行,你会看到历史记录完好无损!

Git 登录主分支

我们从origin/master开始,它正确地显示我们现在处于principal上!

更新本地克隆

如果有人拥有此存储库的本地克隆,他们将如何正确更新他们的克隆?

这条推文解释了如何:


$ git checkout master
$ git branch -m master principal
$ git fetch
$ git branch --unset-upstream
$ git branch -u origin/principal
$ git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/principal

请注意,推文中使用了“main”一词来替换“master”。我使用的是“principal”。只需在命令中将其替换为你选择的名称即可。

这些命令的作用:

  • 前往主分支
  • 将分支重命名为主要
  • 从服务器获取最新更改
  • --unset-upstream删除到origin/master 的链接
  • -u origin/principal创建到主体的链接
  • 更新默认分支

Git 初始化

运行 时git init,默认分支是master。有两种方法可以更改它:

使用别名

您可以设置一个可以git init在具有其他默认分支名称时运行的别名:

git config --global alias.new '!git init && git symbolic-ref HEAD refs/heads/principal'

运行上述命令将允许您使用git new并将分支作为其默认值。

当然,您可以修改此命令。请注意alias.new,例如,您可以将其更改为alias.initialization,或者您想要的任何命令。当然,您也可以修改主体名称以满足您的需求。

修改你的 git 配置

我们可以配置我们的 git 来改变默认分支。

  • 找到你的 git 配置文件。它应该位于~/.config/git/config或 中~/.gitconfig

  • 在此文件中,添加以下行:

[init]
    templateDir = ~/.config/git/template/

现在,在里面~/.config/git/template(您可能必须先运行mkdir ~/.config/git/template来创建它),创建一个HEAD文件并添加此行,加上一个换行符。

ref: refs/heads/principal

当您运行时, templateDirgit init的全部内容将被复制到.git

您现在可以运行git init,并且将分支主体作为其默认值!

当然,如果您愿意,您可以将校长的名字改为其他名字。

替代名称

这里我选择用“ principal ”来代替“master”。以下是一些其他可以使用的词语:

  • 主要的
  • 基本的
  • 领导者
  • 积极的
  • 父母

只是不要使用主人......

玩得开心❤️
不要造成伤害。

来源

文章来源:https://dev.to/damcosset/replacing-master-in-git-2jim
PREV
我正在改变我审查代码的方式
NEXT
React 中的条件包装