如何将您的主分支机构重命名为Main

2020-06-24 07:50:01

如果您在2020年是一名软件开发人员,那么您很可能熟悉“大师”这个术语,它是Git中主要开发分支的名称。科技行业最近的一项行动是将默认的Master名称改为另一个名称,如Main。

这是我们在Kapwing采用的一种方法,在这篇文章中,我们将讨论这一改变的一些想法,以及一个关于如何自己做这件事的简短教程!

目前的讨论围绕着软件开发中的术语命名,以及如何使其对黑人社区更具包容性。MASTER&34;这个名称很重要,因为它既是默认GIT开发分支的标准名称,也包含对奴隶制的明确引用(例如,主/从)。为了让技术成为一个更具包容性的地方,其中一个举措是将主分支机构重新命名为不同的名称。人们已经提出了许多名字,比如主要的和默认的,但到目前为止,主要的替代方案已经成为最受欢迎的替代方案。

将MASTER改为Main的主要理由是减少团队代码库中有问题的术语的出现。计算机领域中“主/从”一词的由来存在争议,但Git开发人员的电子邮件记录证实,他们指的是行业标准制定时常见的主/从比喻。从公司白话中删除这种语言是帮助黑人更容易获得和包容技术的一个小方法。大师并不是唯一有问题的词;例如,黑名单、白名单、黑帽和白帽等其他术语也被认为是有问题的术语。

将MASTER改为Main的另一个论点是提高科技界对微侵略性和黑色问题的认识。这一变化提醒人们,让环境更具包容性所需的意向性。

为大师术语辩护的开发人员争辩说,它是一个工程标准,工程标准是有用的,不应该无缘无故地破坏。有人说,这一改变破坏了许多代码,并冒着许多不必要的技术难题的风险。其他人争辩说,当新开发人员增加代码库时,不同的做法可能会让他们感到恼火或困惑。

反对这一改变的另一个有争议的论点是,硕士分校实际上并没有提到奴隶制--相反,它来自不同的起源,类似于硕士学位这样的词。然而,根据Git开发过程中的电子邮件记录,这一说法后来被证明是错误的。

最后,虽然这并不是反对这一变化本身的理由,但有一种观点认为,将主机改为Main只不过是纸上谈兵的活动人士的工作,他们为了在晚上睡得安稳,只做了最少的工作。一些人声称,将MASTER改为Main只是表演性的盟友关系-分散了对真正问题的注意力,可能会让人们因为做了一些对争取平等的宏伟计划影响甚微的事情而自吹自擂。

如果您已经通读了讨论并决定更新您的主分支名称,请继续阅读我们在Kapwing用来执行此操作的git命令。

要做的第一件事是移动主分支或将主分支重命名为Main。

$git Branch-m master main$git状态在分支main上您的分支是最新的';源/主';。没有要提交的内容,工作树是干净的。

现在,在我们的本地存储库中,我们有一个设置为与上游主分支相对应的主分支。我们现在可以尝试推送主分支,但我们会遇到以下错误:

$GIT PUSH FATAL:当前分支的上游分支与当前分支的名称不匹配。要推送到遥控器上的上游分支,请使用git Push Origin Head:master要推送到遥控器上的同名分支,请使用Git Push Origin Head要永久选择任一选项,请参阅';git帮助配置中的pres.default。

我们已将本地分支重命名为Main,但远程分支仍称为MASTER。因此,Git会抱怨,因为它不知道应该将您当地的分支机构推到哪个分支机构。它为您提供两个选项:

Git推送来源Head:Master:这会将您的本地主分支推送到现有的远程主分支。

Git Push Origin Head:这将把您的本地主分支推送到远程上的同名分支,换句话说,这将在远程上创建一个名为Main的新分支。这就是我们想要的!

$GIT推送原始HEADTotal 0(增量0),重用0(增量0)Remote:Remote:通过访问Remote:<;https://github.com/kapwing/kapwing/pull/new/main>;remote:to github.com:kapwing/kapwing.git*[新分支]Head->;Main,为giHub上的';Main&&>创建一个拉取请求。

现在,我们的远程repo上有两个完全相同的分支,master和main。我们可以导航到GitHub来检查分支是否确实正确。

现在您已经创建了一个主分支并将其推送到您的遥控器!这是一个很好的中间状态,因为您可以同时运行主分支和主分支一周左右,以确保没有问题。

请确保更新所有配置项管道以及可能指向主分支的任何其他依赖项。在我们的例子中,我们在Heroku上配置了自动部署,当新的提交被推送到主服务器时,它会自动部署我们的应用程序。

您的部署管道可能与我们的不同。因为可能有许多不同的服务依赖于主分支,所以最好同时运行主分支和主分支进行几次部署,直到您确信一切都很顺利为止。

当您确信您的工程团队熟悉Main,并且所有管道都在Main上平稳运行时,最后一步是删除主分支。

对于我们Kapwing,我们的默认分支已经是dev分支,这意味着我们不必重新配置默认分支。但是,如果MASTER是您的默认分支,则可能需要先将Main设置为默认分支,然后才能删除MASTER。这是特定于Github的设置-换句话说,远程存储库通常需要定义一个默认分支,以便在您查看存储库时知道要呈现哪个分支。在这个堆栈溢出答案中有一个很好的教程。

最后,删除主分支:首先,签出主分支。然后,运行git Branch-D master。您的输出应该如下所示:

$GIT结账主目录切换到分支';Main';您的分支机构的';Origin/Main';.$GIT BRANCH-D MASTER已删除分支主目录(版本为5aa0c31e6)。

现在,我已经删除了本地repo上的主分支,但我仍然需要删除远程主分支。为此,我可以运行以下命令:git push Origin:master。

#ericlu@erics-mbp in~/site/kapwing on git:main o[10:47:49]$git推送来源:master remote:error:GH006:refs/head/master的受保护分支更新失败。remote:错误:无法删除此受保护分支to github.com:kapwing/kapwing.git![远程拒绝]主机(受保护的分支挂钩已拒绝)错误:无法将某些引用推送到';[受保护的电子邮件]:kapwing/kapwing.git';

哦不!像许多组织一样,我们已经将我们的主分支机构设置为受保护。换句话说,在没有特殊访问权限的情况下,不可能从远程存储库中删除分支。

但是,在许多不受保护的情况下,运行此命令会对您起作用。只需确保您完全确定您已准备好删除主机即可!

在Github中,我可以在设置→分支中删除受保护的分支。我将使用此UI删除我们的主分支。

这就对了!现在我们在Kapwing的主要回购业务没有主分支机构。

虽然每家公司都需要在知情的情况下做出自己的决定,但在Kapwing,我们决定将我们的主分支机构改为Main。

我们希望努力减少我们代码库中任何带有种族色彩的术语,无论它们是否具有广泛的攻击性。我们希望尽可能具有包容性,这意味着要采取措施消除有问题的术语。

这很可能是真的,改变我们公司分支机构的名称并不一定会对当今美国的黑人和黑人问题产生很大的直接影响。然而,更名确实有助于提高科技行业黑人的知名度。我们认为,朝着更具包容性的环境迈出任何一步都是正确的,当这一步就像改变分行名称一样小的时候,这是不需要动脑筋的。

然而,我们也要牢记这样一个事实,争取平等的斗争不会随着把主人变成主人而结束。我们不能仅仅因为我们做了这么小的改变就为解决种族主义问题而沾沾自喜。相反,无论是在科技界还是在其他领域,要帮助实现平等还有很长的路要走。我们还在其他方面采取了行动,首先是将YouTube的收入捐赠给黑人内容创作者,同时花时间将自己作为一个团队,在当今美国的黑人问题上进行教育。但我们意识到,这些只是朝着正确方向迈出的非常小的一步。

我们认为,作为技术社区的一员,我们有责任思考创造性的方式,为黑人生命也是事业做出贡献。我们支持参加过抗议活动的员工,出版了关于如何使用我们的产品来支持这项事业的内容,在我们的社区中突出了令人惊叹的黑人创造者,向平等正义研究所捐款,并公开表达了我们的立场。我们认识到,要让科技初创公司的世界变得更加公平,还需要取得很多进展,但我们认为,将Master改为Main是我们可以采取的消除代码库偏见的一步。我们希望这篇文章能帮助您更好地理解这个问题,并希望您可以采取行动对您的团队做同样的事情!