将本地已有仓库推送到github上新建的空仓库(git remote add ...)

 

场景:

在github上或者其他,新建一个仓库,打算将已经存在的仓库的一些/全部分支推送到新仓库中。

方法:

1) 在github上新建empty仓库;假设地址为 git@git.github.xxx.git

2) 进入到你本地的repo文件夹, 执行

       git remote add repo_addr git@git.github.xxx.git

       作用是增加远程仓库的地址,该地址用repo_addr 来表示; 默认情况下,你从远端git clone下来的仓库里面有一个默认的地址,以origin表示。执行git remote -v 可以看到所有的地址符号。

       之所以在一个repo内存多个远程仓库的地址,是因为有时候需要跟不同的仓库打交道, 本例就是一个场景;

3) 假设你想将你本地repo的branch3分支推送到repo_addr对应的仓库,则执行:

       git push  repo_addr branch3

       Note:  git push -u  repo_addr branch3 会导致你的这个本地的branch3分支的upstream变成repo_addr里面的branch3, 即当你在本地的branch3下执行git pull, git push时,会自动与repo_addr做同      步,所以如果你只是向将你本地branch3推送到repo_addr,不想让它的上游branchrepo_addr的branch3则不要用-u。

        -u相当于--set-upstream,之前写的”在本地新建一个分支后推送到远端“就是这样的呢: https://www.cnblogs.com/butterflybay/p/11294473.html

        执行git push -u repo_addr branch3后,查看你本地的.git/config会相应变化:remote = xxx

                       

        Note:曾遇到 ”error: src refspec master does not match any“   --- github上默认的主分支叫做main了,fuck!

                 https://itsmycode.com/git-error-src-refspec-master-does-not-match-any/

 

4)总结:

      本质上就是不同仓库之间的交互操作。 关于git remote 的综合详细介绍,请直接参考官方文档:

https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes

 

常用的git remote:

1) git remote

It lists the shortnames of each remote handle you’ve specified. If you’ve cloned your repository, you should at least see origin — that is the default name Git gives to the server you cloned from。

$ git remote
origin

2) git remote -v

You can also specify -v, which shows you the URLs that Git has stored for the shortname to be used when reading and writing to that remote:

$ git remote -v
origin	https://github.com/schacon/ticgit (fetch)
origin	https://github.com/schacon/ticgit (push)

3) git remote add xxx addr, 上例已经用过。

 

 

其他连想:

git branch 指令:

git branch :

list all the branches that in you local repo;

 

git branch -r :

list all the branches that in the remote.  If you locally define origin, and repo_addr, just as the example above, this command can list all the branchs in the remote repos :

 origin/xxx,  repo_addr/xxxx

     

posted @ 2021-09-09 22:53  JadeCicada  阅读(370)  评论(0编辑  收藏  举报