在 git 中替换 master
主/奴隶教派
主人/奴隶的称谓在科技领域很常见。主人/奴隶是一个带有压迫性的比喻,指的是奴隶制。这些比喻在描述科技概念时并不恰当,也不准确。使用这些比喻会抹去奴隶制的历史,并将其置于一个不属于它的语境中。
更新:不知出于什么原因,人们似乎对此有所抵触……Git 的 master 模式历来与 master/slave 模式紧密相关。它的名字来源于 BitKeeper。来源:这里
更新 2:Github 正在寻求替换主词
更新3:这件事闹得沸沸扬扬。我得好好反思一下这个话题。我仍然认为这个词应该从git里删掉。就这样。然而,我不是提出这种话题的合适人选。我在这个过程中造成了一些伤害,对此我深表歉意。我决定把这篇文章留待问责。我会努力学会闭嘴,优先考虑黑人的声音。
词语很重要。即使在技术环境中,我们用来定义概念的词语也非常重要。Git 是仍然使用“ master”一词的环境之一。但是,去掉它并不那么复杂。我们需要做两件事:
- 在本地和远程的现有分支上替换单词
- 修改你的 git 配置,在运行时不使用master这个词
git init
让我们从第一点开始。
从现有项目中替换 master
首先,我们必须在本地更改我们的主分支。
我这里有一个带有主分支的项目。我正在运行git branch -m master principal
将主分支重命名为主要分支。此命令会保留分支的历史记录,因此您不会丢失任何内容!
注意:我选择将分支重命名为principal。您也可以选择其他名称。但必须符合您和您的团队的理解。
运行此命令会通过添加主git push -u origin principal
分支来更新远程仓库。-u参数还会设置上游。
更改 Github 上的默认分支
现在,我还需要更改Github 上的默认分支。在你的仓库页面中,点击“设置”选项卡,然后点击左侧菜单中的“分支”。你可以在这里更新默认分支:
大功告成!如果你git log
在主分支中运行,你会看到历史记录完好无损!
我们从origin/master开始,它正确地显示我们现在处于principal上!
更新本地克隆
如果有人拥有此存储库的本地克隆,他们将如何正确更新他们的克隆?
这条推文解释了如何:
xUnit.net@xunit
@bradwilson关于如何修复本地克隆中的名称更改的快速说明:
$ git checkout master
$ git branch -m master main
$ git fetch
$ git branch --unset-upstream
$ git branch -u origin/main
$ git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main2020年6月8日 上午6:36
$ 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