小さいフィーチャの名前付きブランチを作成しましたが、これをデフォルトのブランチにマージしますが、フィーチャブランチをプッシュしません。Gitのスカッシュマージ用のMercurialと同等
gitではgit merge --squash my-feature
を実行できました。 Mercurialに相当するものは何ですか?それとも別のものがありますか?
小さいフィーチャの名前付きブランチを作成しましたが、これをデフォルトのブランチにマージしますが、フィーチャブランチをプッシュしません。Gitのスカッシュマージ用のMercurialと同等
gitではgit merge --squash my-feature
を実行できました。 Mercurialに相当するものは何ですか?それとも別のものがありますか?
Gitの「スカッシュマージ」はマージされません。マージの機械を使用して、他のコミットの効果をコピーし、マージベースの検索機構を適用してどの差分を適用するかを決定しますが、これらの変更を新しい独立コミットとしてそのまま適用します。
[email protected] <-- you-are-here
\
Q--R--S <-- stuff-you-want-to-squash
Gitは効果的ですgit diff B S | git apply -3
です。
Mercurialはかなりのものはありませんが、新品同様、このコピーコミットQ-R-S
の効果とそれらを追加しますが@
後にコミットするので、あなたはhg rebase
を使用することができます。 Q-R-S
(または多くのコミットがある)を維持したい場合は--keep
オプションを参照してください。また、スカッシュ効果を得るには--collapse
オプションを使用してください。
全コマンド 'HGリベース--keep --collapse -s commit_hash-of_first_commit_in_my_feature_branch -d default'を さらに読書:https://spin.atomicobject.com/2013/11/27/move-unpushed-changes / – Krishnaraj