大致可分为下面几种情况:
1.仓库没有初始化,即空文件夹
1.1 初始化分支
1.2 使用clone的同步
2.仓库初始化,但并未推送
3.仓库已经推送至远程仓库
解决方式如下:
1.仓库没有初始化,即空文件夹:本地没有仓库的两种情形
1.1 初始化仓库并初始化分支
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| 以下命令可以初始化仓库并初始化一个分支 $ git init -b <branch-name>
$ git init -b main 连接远程仓库 $ git remote add origin <远端仓库链接> 添加暂存区 $ git add . 提交本地仓库 $ git commit -m "解释说明" 推送到远程仓库 ---这里相当于在远端新建了一个main分支 $ git push origin main
此时远端仓库已经有了main分支
删除旧的远程分支(如果不想要旧的默认分支,可以删除)
$ git push origin --delete <branch-name>
$ git push origin --delete master
|
1.2 其他使用clone的同步
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
对于已经 clone 的仓库通过如下步骤进行同步:
$ git fetch `拉取远端分支信息` $ git remote set-head origin -a `更新本地 upstream
$ git branch -m master main
第二步:推送本地分支至远程仓库 $ git push -u origin <branch-name>
$ git push -u origin main
第三步:删除远程分支(如果不想要旧的默认分支,可以删除)
$ git push origin --delete <branch-name>
$ git push origin --delete master
PS:关于git remote set-head命令的解释说明 设置或删除跟踪仓库的HEAD,指向指定分支,命令行中的圆括号表示必选其中之一执行 $ git remote set-head <origin> (-a | --auto | -d | --delete | <branch>) [-a|--auto] [-d|--delete]
|
• 2.仓库初始化,但并未推送 :初始化后未推送,可以直接修改本地的分支名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| $ git branch -m <oldbranch> <newbranch>
$ git branch -m master main
连接远程仓库 $ git remote add origin <远端仓库链接> 添加暂存区 $ git add . 提交本地仓库 $ git commit -m "解释说明"
推送到远程仓库 $ git push origin main 注意:这里在推送的时候,可能会报错,因为可能需要你先pull远程到本地,使远程与本地驳斥一致后,才可以推送 不过,你也可以忽略报错的提示,使用-f强制推送,即$ git push origin main -f
删除旧的远程分支(如果不想要旧的默认分支,可以删除)
$ git push origin --delete <branch-name>
$ git push origin --delete master
|
• 3.仓库已经推送至远程仓库:已经提交至远程仓库,去修改分支名