[解決済み] git が 2 つのブランチ間の diff からコミットを作成
2023-02-10 17:23:27
質問
似たような歴史を持つが、互いに関連性のある2つの支店があります。
私はこの二つのブランチの間の変更を 1 gitコミットです。
ファイルが削除されたり作成されたりしているので、それをパッチに反映させたいのです。
すなわち、以下のものは動作しません。
git diff branch_a branch_b -- > patchfile
git checkout branch_b
git apply patchfile # deletes and adds are ignored
git commit # we miss the deletes
どのように解決するのですか?
branch_b..branch_a" の diff をコミットにする簡単な方法は、以下の通りです。
-
ブランチ tmp を branch_a で作成し、チェックアウトします (
git branch tmp branch_a && git checkout tmp
) (またはgit reset --hard branch_a
は既存のブランチ上で) -
git reset --soft branch_b
-
git commit
というコミットをすると、branch_b と branch_a の間のすべての diff が含まれます。
これは以下の理由で動作します。
-
1.
は、ファイルにbranch_aを反映させるようにします。これはブランチに必要な "最終結果"です。 -
2.
"headをbranch_bにリセットする "が、"変更したすべてのファイル[すなわちbranch_a head]を"Changes to be committed"として残し、gitと同様にstatus
が言うところの "Changes to be committed" として残します。" ←(git reset --soft
ドキュメント この例のブランチが追加されています)
関連
-
コミットには何も追加されないが、未追跡のファイルが存在する解決策
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git ですべてのリモートブランチをクローンする方法
-
[解決済み] git add -A」と「git add .」の違い。
-
[解決済み] Git でファイルの一部分のみをコミットする
-
[解決済み] 2つのリビジョン間でどのファイルが変更されたかを表示する
-
[解決済み] 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 commit to GitHub エラー、プロンプト ! [リモート拒否] master -> master (pre-receive hook declined) エラー: 失敗しました。
-
fatal: リモート参照マスタが見つかりませんでした。
-
git push は最新の解決策を提供します。
-
Git エラー: ヒント: リモートにあなたが持っていない作業が含まれているため、更新が拒否されました ヒント: あなたが持っていない作業です。
-
Gitのコミットでfatal: unable to auto-detect email addressのエラーが報告される。
-
[解決済み] チェリーピックのコンフリクトを解決するにはどうしたらいいですか?
-
[解決済み] IntelliJのShelveとGit stashの違いは何ですか?
-
[解決済み] Git: リモートブランチの情報を更新する
-
[解決済み] GitHub: フォークを "自分のプロジェクト "にする
-
[解決済み] gitは "サイレントモード "で動作しますか?