別の Git リポジトリからコミットをチェリーピックすることは可能ですか? 質問する

別の Git リポジトリからコミットをチェリーピックすることは可能ですか? 質問する

私は、最初の Git リポジトリについて何も知らない別の Git リポジトリからのコミットを必要とする Git リポジトリを操作しています。

HEAD@{x}通常、 reflog で を使用して cherry-pick しますが、これは.gitこの reflog エントリ (異なる物理ディレクトリ) を認識しないため、これを cherry-pick するにはどうすればよいでしょうか。また、そうできるでしょうか。

私は を使用していますgit-svn。最初のブランチはSubversion リポジトリのgit-svnを使用しており、次のブランチはSubversion ブランチの を使用しております。trunkgit-svn

ベストアンサー1

答えは、format-patch を使用することですが、質問は別のフォルダーからチェリーピックする方法であるため、それを実行するコードを次に示します。

$ git --git-dir=../<some_other_repo>/.git \
format-patch -k -1 --stdout <commit SHA> | \
git am -3 -k

馬公氏からの説明コメント 2014年8月28日

git format-patch コマンドは、SHA で指定された some_other_repo のコミットからパッチを作成します (単一のコミットの場合は -1)。このパッチは git am にパイプされ、ローカルでパッチが適用されます (-3 は、パッチが適切に適用されなかった場合に 3 方向マージを試行することを意味します)。

おすすめ記事