git绑定两个远程仓库

Posted Apple

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git绑定两个远程仓库相关的知识,希望对你有一定的参考价值。

最近在做公司项目,之前公司项目统一托管在codding 码云,最近我想把项目与自己的gitlab私人仓库再连接一下,作为自己作品收录的地方,这里总结一下用到的git命令及问题。

1、首先, 找到当前已绑定码云的项目的.git中的config配置文件,

可以看到有一个远程仓库 remote 名叫origin,最快最方便的方法:

[remote "gitlab"]
url = git@gitlab.com:xxxxx/xxxxx.git
fetch = +refs/heads/*:refs/remotes/origin/*

把这个remoter再复制一份下来,remote远程仓库的名称起为自己需要的名称

2、然后在项目中:

git remote
git remote -v

可以查看当前绑定的远程仓库的名称以及具体git地址

3、由于自己的私人仓库已经有一个之前创建好的,要把里面没用的文件删除,否则会报如下错误:

git: updates were rejected because the remote contains work that you do not have locally

git查看、删除远程仓库文件:

git查看远程分支
$ git branch -a

git删除远程分支    
$ git push gitlab --delete <branchName>


如果删除tag    
$ git push origin --delete tag <tagname>

这里参考自:https://blog.zengrong.net/post/1746.html

4、这里首先要把两个远程仓库都拉取一下

git pull --all

但是这里之前绑定的仓库可以成功拉取,新绑定的仓库报错:

To gitlab.com:xxx/xxx-wap.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to \'git@gitlab.com:beileixinqing/zhongwentoutiao-wap.git\'
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.

大概意思就是说需要与远程仓库合并并拉取,

这里单独拉取该远程仓库报错:

fatal: refusing to merge unrelated histories

所以这里合并:

git pull gitlab master --allow-unrelated-histories

最后推送到gitlab

git push gitlab

最后gitlab也可以显示所有commit记录了,大功告成。

 

 

git remote命令理解:

可以通过-all一次提交多个仓库

配置远程仓库

git remote add origin https://url

再添加一个远程仓库

git remote set-url --add origin https://url

注意这里多次添加需要用

git remote set-url --add

不然会报错:

fatal: remote origin already exists.

或者改名

git remote add otherOrigin https://url

一次提交到所有远程仓库

git push --all

注意

git pull 是 git pull (from) origin (to) master

git push 是 git push (to) origin (from) master

git remote -v git查看远程仓库

 

以上是关于git绑定两个远程仓库的主要内容,如果未能解决你的问题,请参考以下文章

合并两个不同远程仓库的Git命令

合并两个不同远程仓库的Git命令

git创建远程仓库地址---上传代码

Git 拉取远程代码

Git 提交到多个远程仓库

Git使用