1

1 月 1 日にフォーク ( origin) し、github リポジトリ ( ) をクローン (ローカル) したとしupstreamます。Xその上にブランチを作成しましたmaster。そして、 に取り組み始めましたX。その間、コミットを にプッシュし続けましたorigin

からoriginのを更新し続けました。(私のローカルレポ経由)。masterupstreammaster

masterブランチを作成したときにバグがありX、その結果、X現在このバグがあります。最近、upstreamのマスター ブランチが更新され、そのバグのバグ修正を提供するコミットが行われました。

私の質問は次のとおりです。この特定のコミットを自分のにプルするにはどうすればよいXですか?

masterupstream&origin両方のブランチが更新されます。

4

1 に答える 1

0

次の 3 つのオプションがあります。

  1. にリベースXupstream/masterます。
  2. にマージupstream/masterXます。
  3. 特定のコミット ( と呼びましょう<sha fix>) を にチェリーピックしXます。

これらのいずれかを選択する前に、まずアップストリームから変更を取得してください。

# First fetch upstream/master
$ git fetch upstream

次に、さまざまなオプションのコマンドを次に示します。

リベース

$ git rebase upstream/master X

マージ

# With X checked out
$ git merge upstream/master

チェリーピック

# With X checked out
$ git cherry-pick <sha fix>

一般に、rebaseブランチを上流のブランチと同期させるために を使用することをお勧めしますが、merge代わりに使用することを決定することもできます。これにを使用することはお勧めしませんcherry-pick。最終的に にマージする場合Xmasterコミットが重複することになり、場合によってはコードのリグレッションが発生する可能性があるためです。

于 2013-07-17T03:53:07.543 に答える