[解決済み] ブランチ内の全コミットに対するパッチを生成するには?
質問
ブランチ名だけで、指定したブランチのすべてのコミットに対するパッチを生成するにはどうしたらよいでしょうか。
このステップは、複雑なワークフローの一部であり、そのすべてが自動化されています。 したがって、誰かが手動でブランチの最初のコミットを決定することを要求するのは、オプションではありません。
ブランチでの変更はローカルで行われないため、reflog に依存するものはオプションではないことに注意してください。
どのように解決するのですか?
指定したブランチがどのブランチから作成されたかがわかっている場合、次のようにします。 パッチを作成するのは簡単です。 :
git diff master Branch1 > ../patchfile
git checkout Branch2
git apply ../patchfile
(を生成することができます(そして パッチも生成できます。 )
しかし、ブランチの正しい "creation commit" を見つけるのは複雑です: " を参照してください。 Git でブランチポイントを見つけるには? をご覧ください。
その OP akirekadu を使用しました。
git format-patch $(git merge-base --fork-point master)..branchB
"で使われているのがわかります。
git diff
作業コピーとブランチベースの間
"です。
レジェンド2k 追加 をコメント欄に追加します。 :
生成されたパッチを確認するには
git apply --stat patchfile
これは適用されませんが、パッチの詳細を与えます。
$(git merge-base --fork-point master)..branchB
コマンドは毎回正しいブランチルートリビジョンを見つけることができないかもしれません。
<ブロッククオート
ちなみに ファブリケーター は、それぞれのプッシュに対して自動的にパッチファイルを生成することで、この種のものをシームレスに扱います。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] Git ですべてのリモートブランチをクローンする方法
-
[解決済み] Git でブランチからコミットを削除する
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] Git で現在のブランチ名を取得するには?
-
[解決済み] Gitブランチをmasterにマージする最も良い(そして最も安全な)方法は何ですか?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
git pushで "Updates were rejected because your current branch is behind "というエラーが報告される。
-
git occurs このリポジトリで別のgitプロセスが動作しているようです。例えば、.NETで開いたエディタなど。エラー
-
コミットには何も追加されないが、未追跡のファイルが存在する解決策
-
[Gitラーニングノート】Gitのコンフリクト:マージする前に変更をコミットするかstashする。
-
Git: bash: cd: 引数が多すぎる
-
[解決済み】Gitでブランチポイントを見つける?
-
[解決済み] git-diffからパッチに対応した出力を得ることはできますか?
-
[解決済み] IntelliJのShelveとGit stashの違いは何ですか?
-
[解決済み] git add --patch' で新しいファイルをインクルードする?
-
[解決済み] Git で 2 つのブランチの違いを取得する