😶‍🌫️

複数のリポジトリへ一気にpushする

に公開

noteにも同一記事を全文投稿しています。
支援が得られればいいなという気持ちで300円を設定してます。
役に立って、お金あげてもいいなという方は是非よろしくお願いします!
https://note.com/minen_san/n/n1d470def213c

対象読者

  • ソースコードのバックアップとして複数のGitリポジトリに同時pushしたい
  • 個人リポジトリで開発を進めながら、提出用リポジトリにも反映したい

この記事における用語定義

  • オリジナルリポジトリ
    • 主に開発を行う元のリポジトリ。ここから他のリポジトリへ内容をコピーする。
  • セカンドリポジトリ
    • オリジナルの内容を同期させたいもう一つのリポジトリ。提出先やバックアップ用など。

push先を追加する手順

下記手順を実行することで一度の git push で両方に同時pushされるようになる。

  1. 現状のpush先を確認する
git remote -v

出力例:

origin  <original_repository> (fetch)
origin  <original_repository> (push)
  1. push先を追加する
    • [注意] --add を忘れると元の設定が完全に上書きされて消えてしまう
git remote set-url --add origin <second_repository>
  1. push先が追加されたことを確認する
git remote -v

出力例:

origin  <original_repository> (fetch)
origin  <original_repository> (push)
origin  <second_repository> (push)

セカンドリポジトリをpush先から削除する手順

セカンドリポジトリへのpushをやめるときの手順を記載する。

  1. push先からセカンドリポジトリを削除する
git remote set-url --delete origin <second_repository>
  1. push先から削除されたことを確認する
git remote -v

出力例:

origin  <original_repository> (fetch)
origin  <original_repository> (push)

セカンドリポジトリと開発用リポジトリの役割を入れ替えたい場合

すでに設定しているoriginのpush先をバックアップ(セカンドリポジトリ)に変更し、新しい開発用リポジトリをoriginに設定する。この操作は、オリジナルとバックアップ(セカンド)リポジトリの役割を入れ替えるものです。

  1. 現在のpush先URLをメモする
    • 下記コマンドの出力結果をメモすること
    • 以下ではメモしたURLを <old_origin_repository> と表記する
git remote get-url origin
  1. 通常使うリポジトリを新オリジナルリポジトリに変更する
git remote set-url origin <new_original_repository>
  1. 元のリポジトリもpush先に追加
    • [注意] --add を忘れると元の設定が完全に上書きされて消えてしまう
git remote set-url --add origin <old_origin_repository>
  1. push先が追加されたことを確認する
git remote -v

出力例:

origin  <new_original_repository> (fetch)
origin  <new_original_repository> (push)
origin  <old_origin_repository> (push)

Discussion