1
0
Fork
You've already forked mirror_control
0
No description
2026年04月09日 17:07:54 +02:00
LICENSE Initial commit 2026年04月09日 17:07:40 +02:00
README.md README.md を更新 2026年04月09日 17:07:54 +02:00

mirror_control

GitHubとCodebergの相互ミラー方法 「相互ミラー」は両方向同期を意味しますが、実際には片方を正とする一方向ミラーを2つ設定する形が現実的です。真の双方向同期はコンフリクトが起きやすく推奨されません。

構成パターン GitHubを正とする場合(最も一般的) GitHubにプッシュ → Codebergに自動ミラー これはCodebergの機能で対応できます。

設定手順 CodebergへのミラーをGitHub Actionsで行う

GitHubリポジトリの Settings → Secrets に以下を追加

CODEBERG_TOKEN(CodebergのアクセストークンをCodeberg設定画面で発行)

GitHubリポジトリに .github/workflows/mirror.yml を作成し、pushのたびにCodebergへforce pushするワークフローを設定

CodebergのPull Mirror機能を使う(より簡単)

Codebergでリポジトリを作成 Settings → Repository → Mirror Settings 「Pull from URL」にGitHubのリポジトリURLを入力 GitHubのアクセストークンも入力(プライベートリポジトリの場合) 同期間隔を設定(最短8時間ごと)

注意点

Codebergの無料プランではPull Mirrorは8時間間隔が最短です GitHub ActionsはGitHub側の変更をリアルタイムでCodebergへ反映できるため、即時性が必要なら組み合わせが有効です 双方向で別々に編集するとコンフリクトが発生します。どちらか一方で作業することを強く推奨します

どちらを「正」のリポジトリにするか決めてから設定するのがスムーズです。Codebergが正。GitHubからPullもPushもできてほしいけどPullは毎週1回とかでいい GitHubにしかないリポジトリをforkして定期的にアップストリームマージするぐらいしか使わない。一部ローカルでもよし ステップバイステップでやり方を教えて23:535 / 5件構成の整理

Codeberg = 正(メインで作業) GitHub = 読み書きできるミラー(週1同期でOK) 用途:GitHubにしかないリポジトリをforkしてアップストリームマージ、たまにローカル作業

ステップバイステップ Step 1:CodebergのアクセストークンとGitHubの設定 Codeberg側

Codeberg → Settings → Applications → Generate Token 権限は repository にチェック トークンをコピーして安全な場所に保存

GitHub側

GitHub → Settings → Developer settings → Personal access tokens → Generate new token (classic) 権限は repo にチェック 同様にトークンを保存

Step 2:GitHubにミラーリポジトリを作成

GitHubで新しいリポジトリを作成(Codebergと同名が管理しやすい) 空のままにしておく(READMEも追加しない)

Step 3:CodebergからGitHubへのPush Mirror設定

Codebergのリポジトリ → Settings → Repository 「Mirror Settings」または「Push Mirrors」セクションを探す 以下を入力:

URL: https://<GitHubユーザー名>:<GitHubトークン>@github.com/<ユーザー名>/<リポジトリ名>.git Sync when commits are pushed: チェックON(Codebergにpushするたびに自動でGitHubにも反映)

保存

これでCodeberg → GitHubへの自動Push Mirrorが完成です。

Step 4:ローカルのリモート設定 ローカルで両方にアクセスできるよう、リモートを2つ登録します。 ターミナルで:

origin = Codeberg(メイン) github = GitHub(サブ)

として登録しておくと、

普段は git push origin でCodebergへ → Step3のPush Mirrorが自動でGitHubにも反映 GitHubのforkからマージするときは git fetch github で取得可能

Step 5:GitHubにしかないリポジトリのfork&定期マージ

GitHubでアップストリームのリポジトリをFork そのForkをCodebergへClone(またはローカルへClone) upstream としてGitHubの元リポジトリを登録 週1など好きなタイミングで:

git fetch upstream git merge upstream/main git push origin(Codebergへ → 自動でGitHubミラーにも反映)

Step 6(任意):週1の自動同期をGitHub Actionsで もし完全自動化したい場合は、GitHubのforkリポジトリにGitHub Actionsを設定して:

週1スケジュール(cron)でupstreamをfetch&merge CodebergへPush

という形も可能です。ただし手動でも十分な用途なら不要です。

まとめ図 Codeberg(正) ↓ Push Mirror(自動) GitHub

ローカル / GitHub fork ↓ fetch upstream → merge → push origin Codeberg(正)→ 自動でGitHubにも反映 まずStep 1〜3を済ませると、基本的な流れが動き始めます。不明な点があれば気軽に聞いてください。