git绑定两个远程仓库

时间:2023-03-08 17:42:19

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

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

git绑定两个远程仓库

可以看到有一个远程仓库 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查看远程仓库