いいえ、直接的な方法はありません。けれど; マージするブランチからファイルを選択し、マスター ブランチの既存のファイルに上書きできます。コマンドの順序は次のとおりです。
git checkout master
git show bugfix:login.php > login.php
git show bugfix:register.php > register.php
git add .
git commit -m "Select login and register from branch/bugfix"
わかりました、上記の方法はファイル履歴を「破棄」します。このメーリングリストには、同じことについての古い議論があります。
技術的な観点から言えば、履歴が問題になるのは (そして「日付順のコミットのセット」が役に立たない理由)、共通の祖先が得られるからです! そして、それが重要な唯一のことです。
では、ファイルごとの履歴を作成することの根本的な問題は何でしょうか?
さて、もしあなたがこの議論に従ったのなら、あなたは「ああ、当たり前だ!」と思うはずです。
たくさんの段落を無視します。あなたは回避策を見つけるでしょう:
git diff commit..othercommit filename | git-apply --index && git commit
あなたの場合、commit
= あなたの HEAD/master ブランチのハッシュ。and othercommit
= バグ修正ブランチのハッシュ。