将代码仓库git fork到不同代码托管平台

将代码仓库git fork到不同代码托管平台

原由

  • 由于公司局域网访问github比较慢,但是在构建镜像的时候,有时候需要源码编译,所以需要将代码fork一份到内部的代码托管平台

  • 不同于git clone,fork的意思是需要保留git log,还有可能需要tag信息,这些都无法通过git clone获得

方法

步骤:

  1. 在内部代码托管平台新建空白仓库A
  2. git clone A 获取本地仓库
此时执行
cat .git/config
得到:本地分支[branch "master"] ,和指向远程仓库A [remote "origin"]
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
[submodule]
        active = .
[remote "origin"]
        url = git@xxxxxxxx/cpython.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
  1. 将来源代码添加到另一个远程来源upstream
git remote add upstream https://github.com/user/repo

此时,
cat .git/config
获得:
[remote "upstream"]
        url = https://github.com/python/cpython
        fetch = +refs/heads/*:refs/remotes/upstream/*

  1. 从远程来源:upstream 拉取代码到本地分支
git pull upstream 【分支】
  1. push到内部远程来源origin
git push origin 【分支】
  1. tag迁移
拉取upstream的远程tag到本地
git fetch upstream

查看本地tag
git tag

推送本地tag到orgin远程
git push origin --tags

其他指令参考https://blog.csdn.net/qq_34273222/article/details/107080031

其他便捷方法

  • GitLab在Settings => Repository => Mirroring Repository中提供镜像功能。

超简版命令-所有分支同步!!!

git clone demo.git
cd demo
//拉取所有分支到本地
git branch -r | grep -v '->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
//获取所有tags
git fetch
//新建远程upstream
git remote add upstream 公司内部.git
// 推送当前分支
git push upstream
// 推送其他分支
git branch | grep -v '*' | while read remote; do git checkout "$remote" && git push upstream ; done
//推送所有tag
git psuh upstream --tags


参考

  • https://blog.csdn.net/ternence_hsu/article/details/113531510
  • https://blog.csdn.net/qq_34273222/article/details/107080031
  • https://blog.csdn.net/weixin_44521565/article/details/111246237?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index=3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值