我的Github仓库有'main'和'master'分支-它们的目的是什么?

23c0lvtd  于 2023-05-27  发布在  Git
关注(0)|答案(3)|浏览(822)

我试图将一些本地未版本化的代码推送到repo中,并出于可访问性的原因将其上传到GitHub。
我遵循了here的建议

cd <local_dir>
git init
git add .
git commit -m "initial commit"

然后我在github上创建了一个新的repo并做了

git remote add origin https://github.com/...
git pull origin master --allow-unrelated-histories
git push --force-with-lease

但是我现在在github上看到我有两个分支'main'和'master',我猜github在创建repo时创建了'main',而我在从本地repo同步时创建了'master'
我两个都需要吗?
我可以把master合并到main中然后删除master吗?
目前它只是把我弄糊涂了

:我现在已经试过了(本地)

git branch -m master main
git push origin HEAD

但我得到一个错误

To https://github.com/<the-repo>
 ! [rejected]          HEAD -> main (non-fast-forward)
error: failed to push some refs to 'https://github.com/<the-repo>'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我错过了什么?

ehxuflar

ehxuflar1#

在美国2020年的事件之后,GitHub决定将默认的Git分支重命名为maindetails)。Git和GitHub不强制使用任何分支名称,但仓库需要一个默认分支;这个分支如何命名取决于您。
至于你的第二个问题,解决main是好的。在进行任何更改之前,请检查您的提交是在哪个分支上:

  • 如果你的提交是在master上完成的,你必须将master合并到main,然后删除master
  • 如果你是在main上提交的,master上没有任何内容,并且可以删除它。

您可以:

  • 在你的工作站上这样做,push更改到GitHub(我的首选)
  • 在GitHub和pull上工作

编辑以回答额外的问题:Git很棒,因为它有相当丰富的错误信息和建议:

  • Updates were rejected because the tip of your current branch is behind its remote counterpart.这意味着远程分支(在GitHub上)有你的本地分支没有的更改,这就是为什么Git拒绝push
  • Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again.这是典型的解决方案。
0yycz8jy

0yycz8jy2#

Git不需要任何特定的分支。
旧版本的Git(以及GitHub),默认情况下用于创建“主”分支。在后来的版本(IIRC,大约2020年10月)中,默认分支被重命名为“main”,以使用更具包容性的语言。
从技术的Angular 来看,你可以保留两个,决定一个,甚至放弃它们,并决定你的默认分支叫做海绵宝宝。

elcex8rz

elcex8rz3#

只要做一件事,这个主或主显示在文件夹/repo后藤视图部分点击隐藏文件,你发现一个文件名为。git只要删除它,你的问题将解决

相关问题