当前位置 博文首页 > XSES_yasuoman的博客:git 本地文件向github上推送 两个实例
GitHub上创建仓库(创建了README.md,且有一固定名字分支情况下,设default分支名字是"main")
本地git init
本地 git remote add origin URL
本地 git pull <远程主机名"origin"> <远程分支名"main">:<本地分支名"master">
# 把远程最新的代码更新到本地
本地 git branch --set-upstream-to origin/<远程分支名"main">
# 关联远程分支
* master fa87883 [origin/divide-and-conquer: ahead 1, behind 1] test
出现类似如上信息,则说明关联成功,master
为本地分支名,divide-and-conquer
为远程分支名,test
为commit提交信息
如果push时,严格使用git push <远程主机名> <本地分支名>:<远程分支名>,则不需要第5步关联远程分支了!
本地 git add .
本地 git commit -m "xxx"
本地 git push <远程主机名> <本地分支名"master">:<远程分支名"main">
如果在第3步后 没有先 进行git pull <远程主机名> <远程分支名>:<本地分支名>
合并远程分支到本地(同时使得两个分支初始历史记录一致) ,而是先进行了git add .
操作的话
(由于远程分支和本地分支是两个独立的分支,本地先 git add .
导致本地历史先出现了更改操作,本地分支与远程分支历史不同步,后续操作会出现错误,如下表)
操作 | 错误 |
---|---|
git pull <远程主机名> <远程分支名>:<本地分支名> | fatal: refusing to merge unrelated histories |
git push <远程主机名> <本地分支名>:<远程分支名> | failed to push some refs to git |
这种情况可以使用 在操作后+--allow-unrelated-histories
的方法来忽略两个分支历史联系,例如:
git pull <远程主机名> <远程分支名>:<本地分支名> --allow-unrelated-histories
git push <远程主机名> <本地分支名>:<远程分支名> --allow-unrelated-histories
GitHub上创建仓库,你不想推送至main分支,而是一个新的分支"new"
本地git init
本地 git remote add origin URL
本地 git add .
本地 git commit -m "xxx"
本地 git push <远程主机名"origin"> <本地分支名"master">:<远程分支名"new">
上面提到过,该命令可以直接创建远程分支。
* [new branch] master -> new
? 出现上述,说明创建成功,new
为远程分支名
直接push即可,无需关心git add .
命令是否会破坏历史记录,既然远程仓库还没有分支,何来破坏可言,push时输入想要创建的分支名字,会直接同步历史创建该分支。