コミットをマージまたは追加せずに、ブランチAからBへの変更を適用する 質問する

コミットをマージまたは追加せずに、ブランチAからBへの変更を適用する 質問する

私のシナリオは、ビルド プロセスに大きな改善を加えたブランチ (ブランチ 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

おすすめ記事