Androidのgerrit ex: link では、パッチをダウンロードするために4つのオプションがあります。
それらの違いは何ですか?
これが私が考えていることです。どうか明らかにしてください
プルとチェックアウトはチェリーピックとは異なることを知っています。しかし、それらはどう違うのですか?
あなたは最初のものについては正しいです。残りは次のとおりです。
Checkout:フェッチ最新の変更。このレポは既にダウンロードされているはずです。それマージしませんこれらの新しい変更は作業ディレクトリに反映されます。後で自由にそれらをマージできます。
Pull:フェッチ変更およびマージそれら同じ名前のローカルブランチへ。
Cherry-pick:フェッチコミットおよび現在のローカルブランチ上で再生、したがってまったく新しいコミットの作成フェッチしたもの。
これらは、git
で実際に意味するものとは少し異なります。 checkout
およびcherry-pick
変更を自動的に取得しません。 checkout
は、指定したコミットにHEAD
を使用するだけで、そのコミット時とまったく同じように作業ディレクトリを作成します。同様に、cherry-pick
は、すでにローカルにアクセスしているコミットを再生するために使用されます。
Gitを使用すると、独自のバージョンのリポジトリがあります。他のリポジトリと同期すること。 fetch
を使用して、リモート参照を更新します。他の人が得たものを更新します。 checkout
を使用して、特定のリビジョンに切り替えます。これを使い始めたばかりなら、これをやりたいと思うでしょう。
すでにリモートブランチをフォローしている場合は、ローカルブランチを更新するだけで済みます。それがpull
があなたのためにすることです。リモートブランチのすべての変更をローカルブランチに適用します。更新したいだけの場合は、これが必要です。
cherry-pick
リポジトリの任意の場所から1つの変更を選択して、ローカルブランチに適用します。何らかの理由で別のブランチにいても、その特定の変更が必要な場合に便利です。その変更をプッシュせずにチェリーピックした場合、この変更は永続的ではないことに注意してください。ローカルリポジトリにコミットされますが、リモートにはコミットされません(ただし、場合によっては必要になるかもしれません)。
たとえば、git--basicsの詳細を参照してください here
チェックアウト:ブランチの特定のCHANGEに依存しているときに使用します。同僚が消費するためにいくつかのAPIをチェックインし、その変更を新しいローカルブランチにチェックアウトして、変更の作業を開始できると言います。
Cherrypick:特定のCHANGEをローカルブランチまたは特定のリリースブランチに適用してから、チェリーピックします。 1.1リリースにパッチ修正があり、その修正/変更を2.0ブランチに適用したい場合、単純にチェリーピックすることができます。これにより、修正を含む2.0ブランチに新しいCHANGEが作成されます。
ここにグラフィカルな表現があります: http://think-like-a-git.net/sections/rebase-from-the-ground-up/cherry-picking-explained.html