web-dev-qa-db-ja.com

Git-ブランチ内のすべてのコミット用のパッチを生成します

ブランチ名のみを知って、特定のブランチのすべてのコミットのパッチを生成するにはどうすればよいですか?

このステップは、すべて自動化されている複雑なワークフローの一部です。したがって、ブランチ内の最初のコミットを手動で決定することを誰かに要求することはオプションではありません。

Reflogに依存するものは、ブランチの変更がローカルで行われないため、オプションではないことに注意してください。

41
akirekadu

どのブランチから「指定されたブランチ」が作成されたかがわかっている場合、 パッチの作成は簡単です

git diff master Branch1 > ../patchfile
git checkout Branch2    
git apply ../patchfile

(そして、 gitなしでも適用可能なパッチ )を生成できます)

しかし、ブランチの正しい「作成コミット」を見つけることは複雑になる可能性があります。「 Gitでブランチポイントを見つける? 」を参照してください。

OP akirekad 使用:

git format-patch $(git merge-base --fork-point master)..branchB 

git diff作業コピーとブランチベースの間 」で使用されていることがわかります。

51
VonC