web-dev-qa-db-ja.com

別のリポジトリからのGitプル

汎用アプリケーションであるGenericというリポジトリがあります。 Acmeというリポジトリにフォークしました。これは、アプリケーションに保存されたGenericリポジトリに基づいて構築され、Acme Coブランドを追加します。

Genericのコア機能に変更を加えた場合、Acmeのコア機能に加えた最新の変更でGenericリポジトリを更新します。どうすればいいですか?

私が知る限り、本質的には、上流のリポジトリで行われた変更を現在のフォークにマージしようとしています。

それが何かを意味するなら、私はこれをやろうとしています。それは、個々のクライアント(この例ではAcmeのような)に基づいて構築し、ブランド化する汎用アプリケーションがあるからです。よりクリーンな方法がある場合は、お知らせください。

77
Libbux

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には申し訳ありませんが、それは私の頭に飛び込んだ最初のランダムな文字列でした)。

104
McLovin