私のシナリオは、ビルド プロセスに大きな改善を加えたブランチ (ブランチ A) と、関係のない機能に取り組んでいる別のブランチ (ブランチ B) があるというものです。そのため、ブランチ B をハッキングしているときに、ビルドを高速かつ簡単にしたいので、ブランチ A で書いたものを取り込みたいと考えています。ただし、ブランチ B を「汚染」したくはなく、ブランチ A からの変更をステージングされていない変更に追加するだけです。
私が試したこと(branchBに立っているとき):
git merge --no-commit branchA
マージ内に配置されるため機能しません。そうでない場合は完璧です。
git checkout branchA -- .
master..branchA の変更ではなく、branchA..branchB 間の変更が適用されるため、機能しません。
他に何か?
編集: はい、ブランチ A の変更はコミットされています。この例では、ビルドの改善を含むブランチは 1 つだけですが、機能ブランチで作業中に、適用したいビルドの改善を含むブランチが最大 N 個ある可能性があります。
ベストアンサー1
--squash
私も同じようなことをしなければならなかったのですが、マージコマンドに追加することで修正できました。
git merge --no-commit --squash branchA
git reset HEAD # to unstage the changes