Github主分支和主分支的区别?

Posted

技术标签:

【中文标题】Github主分支和主分支的区别?【英文标题】:Difference Between Main Branch and Master Branch in Github? 【发布时间】:2021-01-22 17:33:32 【问题描述】:

我在 master 分支上尝试了 git push,但它只是显示我有新的拉取请求,但是当我点击新的拉取请求时,它需要我比较更改,但没有显示将这些更改添加到存储库的任何选项。它只显示我所做的更改。

但是当我输入命令时

git push origin main

添加到我的存储库的所有文件。

但是当我这样做时

git push origin master

它不起作用。 为什么?我听说他们正在用 main 替换 master。那么将来他们会移除主人吗?

【问题讨论】:

作为答案的附加提示:您可以在 Github 设置中为特定项目和/或所有新项目设置默认分支。 【参考方案1】:

您可以按照说明进行操作:

之前,请检查您的分支是否命名为“master”(旧分支,更改为“main”)或“main”。

对于分支“main”,否则使用“master”(旧分支)

要推送到远程的上游分支,请使用:

git push origin HEAD:main

要推送到远程的同名分支,使用:

git push origin HEAD

要永久选择任一选项,请参阅 git help config 中的 push.default

【讨论】:

感谢@Zsolt Meszaros 的更正。我只是用粗体突出了命令,但效果不佳。 如上所述(其他 cmets)- GitHub 正在将新存储库的术语“master”替换为“main”(不带引号)。【参考方案2】:

GitHub 正在努力将其服务中的“master”一词替换为“main”等中性词,以避免对奴隶制的任何不必要提及,

您可以在此处阅读更改原因here 的更多背景信息:

关于将您的分支从 master 重命名为 main,有很多准则。 For example:

git branch -m master main \
git push -u origin main \
git remote set-head origin main

【讨论】:

这仅适用于 github 还是 git 中的默认值也会改变?如果你使用bitbucket或其他服务器不会受到影响? 为什么我的 MainCard 不工作??【参考方案3】:

当我想将我的文件上传到 gitlab 时,我遇到了这个问题并使用了这个:

git branch -m master main

参考资料:

How to Rename the master branch to main in Git

Change Default Branch - Locally and Gitlab

【讨论】:

【参考方案4】:

GitHub 首席执行官周五表示,GitHub 正在努力将其服务中的“master”一词替换为“main”等中性词,以避免不必要地提及奴隶制。

现在命令看起来像这样:

git push -u origin main git remote set-head origin main

它尚未在 Enterprise 中更新,但已反映在社区版中。

更新:您可以将存储库设置中的 main 更改回 master

【讨论】:

【参考方案5】:

您可以按照以下说明操作:

首先在 GitHub 上创建一个 repo。然后进入你的本地文件夹。打开控制台。依次输入这些命令。

git init

在本地文件夹中初始化 git。

git remote add origin https://github.com/...

克隆你的 Github 存储库。

git pull origin main 

校准存储库。 “main”意味着在这种情况下主分支的内容被复制到本地 repo。除了master分支,还可以创建其他的分支,这里我就不细说了。一开始,有一个简单的 master 分支就足够了。

git branch -m master main

那么我们在这里做什么?首先使用 -m 命令,我们将 git 历史记录从 master 移动到一个名为 main 的新分支。

git add .

locale 目录上传到 Github 服务器。

git commit -m "your commit message"

git push --set-upstream origin main

创建提交后,可以在 GitHub 上更新远程仓库。第一次上传(“推送”)时,您必须指定哪个分支应该是推送的默认分支。在我们的例子中,这又应该是“origin” repo 中的 master 分支

【讨论】:

【参考方案6】:

他们只是更改了新存储库的默认分支。你也可以在这里设置回master -> https://github.com/settings/repositories

【讨论】:

【参考方案7】:

main 分支已经将所有新的 github 存储库替换为主分支。你可以阅读它here。 main 和 master 没有实际区别,只是默认分支的名称。

为您git push origin master 只需创建一个名为 master 的新分支(因为它尚不存在)并将您当前的提交推送到那里。

【讨论】:

我是否应该从现在开始避免使用git push origin master,而改用git push origin main 要么你这样做,要么像@minion在他的回答中解释的那样将 main 重命名为 master

以上是关于Github主分支和主分支的区别?的主要内容,如果未能解决你的问题,请参考以下文章

Github:当特定分支合并到主分支时,我如何通知松弛?

如何只在 GitHub 主分支上运行 CircleCI?

如何创建从一个分支的 Bitbucket 到 GitHub 中的主分支的合并拉取请求

github

关于git中自己的分支和主分支有冲突的解决方案(git和乌龟git)

如何自动接受主分支的彩色 github 工作流程中的更改?