はじめに
この記事の趣旨
リポジトリAのブランチの内容をそのままリポジトリBに反映したい
しかも通常はリポジトリAを利用するのでデフォルトで使うものはそのままがいい
という状態があったときにどういう風にするかの意外とやり方がまとまってなかったのでメモです。
ぼやっとした例だとわかりづらい部分があるので
以下のシチュエーションを例として手順を説明します。
今回の想定
普段はクローズドな環境(例えばGithubEnterprise)にて
HogeHoge
というリポジトリを使っているときに、同じ形で
公開用のオープンな環境(例えばGithub)のリポジトリに公開するというときの
作業内容です。SSHは以下のものを例として使います。
対象gitの種別 | SSH情報(ダミー) |
---|---|
クローズドな環境のgit | git@github.ghe.jp:OreOre/HogeHoge.git |
オープンな環境のgit | git@github.com:OreOre/HogeHoge.git |
やり方
ベースとなるクローズドなリポジトリをcloneする
$ git clone git@github.ghe.jp:OreOre/HogeHoge.git
反映させたいオープンなリポジトリをリモートリポジトリに追加する
# 送り先のリモート名を「githubcom」で追加
$ git remote add githubcom git@github.com:OreOre/HogeHoge.git
# 追加されているか確認
$ git config --list
送りたいブランチをPush
# 送りたいブランチにいることを確認
$ git branch
# 念のためpull
$ git pull origin
# 送りたいリモートを第一引数にして送信
$ git push githubcom master
※master以外も移したい場合はブランチを指定して別途PushすればOK
(おまけ)タグ情報も送りたい場合
# 現在のタグ情報を確認する
git tag
# 送信
git push githubcom --tags
参考URL
ちなみにリポジトリをまるごと引っ越したい場合は
この方法を行うのはいちいちブランチを移すのがめんどくさいので
以下の記事を参照のこと