2017-04-26 9 views
0

小さいフィーチャの名前付きブランチを作成しましたが、これをデフォルトのブランチにマージしますが、フィーチャブランチをプッシュしません。Gitのスカッシュマージ用のMercurialと同等

gitではgit merge --squash my-featureを実行できました。 Mercurialに相当するものは何ですか?それとも別のものがありますか?

答えて

2

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オプションを使用してください。

+0

全コマンド '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

関連する問題