28

GitHub にオープン ソース プロジェクトがあります。その元のリポジトリには、最新のマスター ブランチが含まれています。今、このレポをフォークし、マスター ブランチから開発ブランチを作成し、開発ブランチに何かを追加した人 (私ではない) がいます。私が今やりたいことは、開発ブランチをマスター ブランチにマージすることです。残念ながら、フォークされたリポジトリのマスター ブランチは最新ではありません。また、私はそれぞれの 2 つのリモート リポジトリを所有していないことにも注意してください。

現時点では、元のリポジトリとフォークされたリポジトリの両方をローカル マシンに複製しましたgit clone。フォークされたレポの開発ブランチを、ローカル マシン上の元のレポのマスター ブランチにマージするにはどうすればよいですか (つまり、とにかく不可能なリモート サーバー上ではありません)。

4

3 に答える 3

27

GitHub を使用する場合、プル リクエストを使用してこれを行うことができます。リンクされた記事の説明に従って、開発ブランチをフォークされたリモート リポジトリにプッシュし、プル リクエストを作成するだけです。元のリポジトリの所有者は、リポジトリを新しいリモート リポジトリとして追加し、変更を取得して、開発ブランチをマスター ブランチにマージすることができます。

通常、マスター ブランチを完全に最新にする必要はありませんが、特に開発ブランチをマージする場合は非常に役立ちます。

まず、masterフォークされたリポジトリのブランチを最新の状態にする必要があります。

$ git remote add upstream ssh://path/to/original/repo
$ git checkout master
$ git fetch upstream # Instead of "fetch" & "merge", "pull" would also work
$ git merge upstream/master 

次に、マスター ブランチへの開発ブランチのいずれrebaseか:merge

$ git checkout development
$ git rebase master # OR "git merge master"

必要に応じて、競合を解決します。マージするときは を使用git commitしてマージを終了し、リベースするときは を使用しますgit commit && git rebase --continue

git pushこれで、フォークされたリポジトリのオリジンに移動して、プル リクエストを作成できるはずです。または、許可されている場合は、フォークから元のリポジトリに直接プッシュすることもできます。

于 2013-01-29T16:20:59.537 に答える
4

すでに両方のリポジトリを複製しているようです。ディレクトリclone1とにそれらがあると仮定しますclone2

マージを行う前に、すべての変更セットを 1 つのリポジトリに入れる必要があります。したがって、クローンの 1 つから別のクローンにプルします。これをゼロから行う場合、両方を複製するのではなく、 1 つのリポジトリを複製してから、もう一方をフェッチするだけです。

  1. cd clone1
  2. git checkout master
  3. git remote add clone2 ../clone2(両方のリモートを 1 つのリポジトリに入れます)。両方のリポジトリを複製していなければ、これを行う必要はありません。git remote add otherthing https://<github URI>
  4. git fetchclone2(変更を からにフェッチしますclone1)。これで、すべてを含む 1 つのリポジトリができました。
  5. git checkout origin/masterまたは、ローカル ブランチをチェックアウトすることもできます。あなたの好み。originhere は のソースを参照していることを思い出してくださいclone1
  6. git merge clone2/development必要に応じて、この時点で競合を解決してください。結果をコミットします。
  7. git checkout -b my-ongoing-development(作成したばかりのブランチに名前を付けます。これには両方のリモート ブランチが含まれます)
于 2013-01-29T17:03:34.393 に答える
1

ステップ6を除いて、前のコメントは近いです

git pull clone2 development

別のリモートの Git マージ ブランチを参照

于 2021-07-15T06:41:59.677 に答える