1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Gitのリポジトリ間で同期する

Last updated at Posted at 2019-10-02

これは何?

あるGitリポジトリ(Primary)の履歴(コミット、リファレンス等)をそのまま別のリポジトリ(Secondary)を作成し、引き続き同期(シンク)をし続ける方法のメモです。(GitHub的に言うとForkってやつ。)
例えば、BitbucketからGitHubに、逆にGitHubからBitbucketにそのまま内容を手動で移行するときに使えるはず。

手順の概要

以下の手順で同期を行う。

  1. Primaryからリポジトリの内容をローカルPCにClone (a)
  2. SecondaryのURLをremoteとしてCloneしたリポジトリに追加
  3. Primaryから履歴等をfetchする
  4. Secondaryに対してPushする(b)
  5. 随時同期:Primaryから差分をfetchしてきて、SecondaryにPush
Screen Shot 2019-10-02 at 9.42.32.png

1. PrimaryからCloneする (a)

ローカルPCからの操作で一旦ローカルにコピーCloneする。

$ git clone --mirror https://01_url/prm_repo.git

2. SecondaryのURLを追加する

remoteのURLを追加して同期する先のリポジトリを指定する。

$ git remote add --mirror=fetch secondary https://02_repo_url/scd_repo.git

3. Primaryからfetch

Primaryから履歴等すべてをfetchする。

$ git fetch origin

4. Secondaryに対してPush

$ git push secondary --all

5. 随時同期する

$ git fetch origin && git push secondary --all

おわりに

ここでは、PrimaryからSecondaryへ一方通行の同期をメモをしたが、以下のReferenceのURLでは逆方向(Secondaryの更新をPrimaryに同期する)の方法も記載されているので、必要に応じて確認してください。

Reference

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?