細菌培養とエンジニアリング

細菌研究からエンジニアへ転向した人のブログ

他のリポジトリにpushする時

こんにちは。
今回の記事は誰かの役に立つというよりは、
自分の備忘録的な部分になるので、もし参考になる人がいたら、
コメントとかスターとかつけてもらえると嬉しいです。

扱うケース

今回、扱うケースとしては、

そういう場合でどうすればいいか分かるように書きます。
例えばですが、最近Githubがプライベートリポジトリを無制限に作成可能になったので
以下のユースケースは考えにくいですが、
BitBucketで作っていたものが完成したのでGithubで公開したい
とかが該当するのではないかなと思います。
今回は、開発用のリポジトリと本番環境用のリポジトリがある時を考えてやっていきます。
それでは、始めます。

ステップ

  • 現状のリモートリポジトリを確認
  • 思い出す
  • はっ......さては......

現状のリモートリポジトリを確認

(今回はGIthubhttpsで扱っている時を例にします。)

$ git remote -v

とコマンドを打つと、

origin   https://github.com/[user_name]/[repo_name].git (fetch)
origin  https://github.com/[user_name]/[repo_name].git (push)

上記のように現在登録されているリポジトリが出てくると思います。

思い出す

Githubとか最初にソースコードをコミットするときに

$ git remote add origin https://github.com/[user_name]/[repo_name].git

と打つように指示がなされていたかと思います。
そして、

$ git push -u origin master

と打つことでソースコードがGit上にpushしますよね。
ここで、全く疑問を感じずに-uとかremote addとかしているとのちに壁にぶち当たるわけですよ。
(僕みたいに)

はっ......さては......

調べて今さら知りました。
リモートリポジトリは名前を変えれば加えられること。
ここでは本番環境のリリースブランチにpushすることを想定するとしましょう。

$ git remote add prod https://github.com/[user_name2]/[prod_repo].git

こうすれば

$ git remote -v

としたときに

origin https://github.com/[user_name]/[repo_name].git (fetch)
origin https://github.com/[user_name]/[repo_name].git (push)
prod https://github.com/[user_name2]/[prod_repo].git (fetch)
prod https://github.com/[user_name2]/[prod_repo].git (push)

と表示されていると思われます。
そして、pushするときは

$ git push prod release

と打てばpordとしたリポジトリのreleaseブランチにpushされているはずです。

書くの忘れた

すっかり書くのを忘れましたが、-uをつけると、push、pullするときにデフォルトのリポジトリとしてみてくれて、
次回から

$ git pull

とかしても-uオプションをつけた方から自動的にpullされるようになります。

まとめ

改めて考えてみたら、「そんなことか」みたいなことですが、案件でinitial commitするのなんてPMかPLくらいですし、
自分でゴリゴリ開発している人の方がずっと理解していそうだなぁと思いました。
考えりゃわかるだろ系記事ですが、備忘録までに......。

パンチの効いた検証を思いついたけど、いろんな意味の学習コストが半端ない。