最近在做公司项目,之前公司项目统一托管在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查看远程仓库