核心点:
- 由默认分支名的修改,了解git如何删除本地分支、删除远程分支,由分支的删除可以实现推送到远程不同的分支。
- git不允许推送到远程与本地分支名不同的分支上
由于众所周知的原因,github修改默认的分支为main后,每次新建仓库关联本地仓库时都会看到一行git branch -M main
处理,使用习惯上真的很不“顺畅”。
由此引发了git如何推送本地分支到远程仓库的不同分支中处理【后面想想就执行上面依据修改分支名,本质上也没有什么额外的负担】。
- 创建新仓库
echo "# CSharpCommonImplement" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:findmoon/CSharpCommonImplement.git
git push -u origin main
- 推送一个存在的仓库
git remote add origin git@github.com:findmoon/CSharpCommonImplement.git
git branch -M main
git push -u origin main
git branch -M main
前置修改当前分支名为main。
git推送本地分支到远程仓库的不同分支
作为安全措施,git不允许推送到远程与本地分支名不同的分支上。如果远程没有与本地分支相同的名称,推送将会中断。
如下,推送到远程的main分支
git push origin master:main
推送时指定分支名的命令:
git push <remote> <local branch name>:<remote branch to push into>
这个命令的本质含义是:将当前分支推送到远程相同的分支master
,然后将远程master
修改为main
。
如果没有任何提交直接删除main分支
如果在main分支上没有任何提交,则可以直接删除,后续使用master分支即可。
删除本地分支
## -d 即 --delete
git branch -d <branch_name>
## -D 即 --delete --force
git branch -D <branch_name>
删除远程分支
git push <remote_name> --delete <branch_name>
更方便记住的命令:
git push <remote_name> :<branch_name>
github提供修改默认分支名
github现在提供修改默认分支名方法:https://github.com/settings/repositories
进入可以直接修改默认分支名为master
,这样就不需要处理main
和master
名称了。
gitee中的默认分支名问题
gitee创建仓库的默认分支名还是为master。
如果是一个空的gitee远程仓库,直接推送本地main分支到gitee,远程仓库默认分支名会默认为main。
如果想要修改已有的master分支名,可以在gitee仓库的“管理”中修改(空仓库没有此修改选项)。