わからないが、1つのリポジトリを親リポジトリとして使用するにはどうすればよいですか?タイトルは右の文言されている場合
私はリモコンとしてAとBを設定しているBでrepo-A
とrepo-B
を持っています。
Bはいくつかの追加ファイルでAを拡張したもので、Aからの変更でBを定期的に更新したいが、追加のBファイルをAにプッシュしないとします。
これが可能です。この
わからないが、1つのリポジトリを親リポジトリとして使用するにはどうすればよいですか?タイトルは右の文言されている場合
私はリモコンとしてAとBを設定しているBでrepo-A
とrepo-B
を持っています。
Bはいくつかの追加ファイルでAを拡張したもので、Aからの変更でBを定期的に更新したいが、追加のBファイルをAにプッシュしないとします。
これが可能です。この
別のリポジトリを持っている特定の要件がありますない限り、何を記述していると、枝として行わ優れています。 BはA.の枝であり、他の枝と同じようにgit merge A
またはgit rebase A
のいずれかのBを更新します。ここから私は合併を仮定します。これは、マージでどのように見えるかです。
1 - 2 - 3 - 6 - 7 - 10 - 12 - 13 [A]
\ \ \
4 - 5 - M - 8 - 9 - 11 - M - 14 [B]
別々のリポジトリである必要がある場合は、リモートブランチでも同じことを行います。あなたが直接制御できないプロジェクトを拡張しているときに、これを使うかもしれません。物事を少し明確にするために、Aを "上流"、Bをあなたのレポジトリと呼ぶことにしましょう。 AはBの上流にあり、Bは上流から引っ張り出すだけで後退しない。
最初にAをクローンし、origin
(A)の名前をupstream
に変更します。
git remote rename origin upstream
git clone A
git remote add origin <url to your remote>
git push origin
今、あなたはこれを持っています。 3つのブランチはすべて同じコミットを指していることに注意してください。
1 - 2 - 3 [master] [origin/master] [upstream/master]
正常に作業し、正常にコミットし、元に戻します。ここに2つの新しいコミットとプッシュがあります。
1 - 2 - 3 [upstream/master]
\
4 - 5 [master] [origin/master]
最初にgit fetch upstream
を更新する場合。これはあなたの地元の支店を変更することはありません、それは上流のもののあなたのコピーを更新するだけです。上流のマスターブランチに2つの新しいコミットがあるとしましょう。
1 - 2 - 3 - 6 - 7 [upstream/master]
\
4 - 5 [master] [origin/master]
さらに、他のブランチのようにマージする:git merge upstream/master
。
1 - 2 - 3 - 6 - 7 [upstream/master]
\ \
4 - 5 - M [master] [origin/master]
これは、git pull upstream master
という1つの手順で実行できます。
これを行うには続行し、分岐鎖状のだろうかのように、あなたは同じことをする羽目になるだろう。
1 - 2 - 3 - 6 - 7 - 10 - 12 - 13 [upstream/master]
\ \ \
4 - 5 - M - 8 - 9 - 11 - M - 14 [master] [origin/master]
重要なものは以下のとおりです。
git pull upstream
git push origin
を行うための最善の方法は、はい、あなたはそれを非常にシンプルに何ができるかです:私はリモコンとしてAとBを設定しているBでは
。
これは、あなたが単にあなたのプロジェクトにリモコンのための任意の数を追加し、あなたがしたい任意の方法でそれらを使用する必要が
をしなければならなかったまさにです。 (1にプッシュして、他のものから引っ張るなど)。
リポジトリは、リポジトリが話すことができるURLであり、どのように使用するかを決めることができます。オリジナルのレポ
内側両方のリポジトリからのコードを使用して新しいリモートgit remote add <origin2> <url2>
下の画像に示すように、大きなリポジトリを構築する2つのリポジトリがあります。
# clone first repository
git clone <repo1>
# add remote
git remote add <remote2> <url2>
# display the list of all the remotes
git remote -v
と私は定期的にAからの変更とBを更新したいが
に追加Bファイルをプッシュしていないあなたは、この時点でなければならないすべて単にAからの変更を引き出すことです。
# make sure you are on the branch from repository B
git pull origin A <branch>
# now you have all the changes from A in your B branch
「Bに私はリモコンとしてAとBを設定している」Bが自身のリモートであるように、私はこれを読ん。それは意味をなさない。打ち間違え?とにかく、あなたが何を記述しているのかは、ブランチでうまくいくことができます。彼らは別のレポスでなければなりませんか? – Schwern
@Schwern:それは誤字であってはいけません。なぜそれは意味をなさないのでしょうか?私はこの場合分岐したくない。それは複雑です:)「コミュニティ版」と「プレミアム版」を考えてください –
「私のローカルリポジトリではAとBをリモコンとして設定しています」という意味だと思います。おそらく、gitコマンドを使って何をしたのか説明する必要があります。 – Schwern