内部项目开发中引用了外部开源项目,需要保持对外部项目的追踪(bug的修复、功能的增加等)。但公司有严格的网络管控,不允许直连Internet。于是摸索出了下面的方法来手工同步网络被隔离的两套库。
1. 在外网下载所有分支
git clone url_to_the_public_repo
for branch in `git branch --all | grep remotes\/ | grep origin | grep -v HEAD | grep -v master` ; do
git branch --track "${branch##remotes/origin/}" "$branch"
done
2. 拷贝到内网
3. 添加内网git服务器为远程库
git remote add gitlab url_to_the_private_repo
4. 上传所有分支到内网git服务器中
for branch in `git branch | tr -d ' *'` ; do git push gitlab ${branch} ; done
网友评论