汎用アプリケーションであるGeneric
というリポジトリがあります。 Acme
というリポジトリにフォークしました。これは、アプリケーションに保存されたGeneric
リポジトリに基づいて構築され、Acme Coブランドを追加します。
Generic
のコア機能に変更を加えた場合、Acme
のコア機能に加えた最新の変更でGeneric
リポジトリを更新します。どうすればいいですか?
私が知る限り、本質的には、上流のリポジトリで行われた変更を現在のフォークにマージしようとしています。
それが何かを意味するなら、私はこれをやろうとしています。それは、個々のクライアント(この例ではAcme
のような)に基づいて構築し、ブランド化する汎用アプリケーションがあるからです。よりクリーンな方法がある場合は、お知らせください。
Acme
リポジトリで次のコマンドを発行します。 upstream
リポジトリを指すGeneric
という名前の新しいリモートリポジトリを追加します。
git remote add upstream https://location/of/generic.git
次のコマンドを使用して、Generic
に加えられた変更をAcme
の現在のブランチにマージできます。
git pull upstream
自動的にマージせずに変更をダウンロードするだけの場合は、git fetch
の代わりに git pull
。
そのリポジトリへのプッシュを無効にする場合は、次のような方法でプッシュURLを無効なURLに設定します
git config remote.upstream.pushurl "NEVER GONNA GIVE YOU UP"
Gitは、upstream
にプッシュしようとするとレポジトリが見つからないことを警告します(Rickrollには申し訳ありませんが、それは私の頭に飛び込んだ最初のランダムな文字列でした)。