65

git merge --squashタイトルにあるように、aとaの違いについてはよくわかりませんgit merge --no-commit

のヘルプページを理解している限りgit merge、どちらのコマンドも更新された作業ツリーに残り、編集してから最終コミット(または複数のコミット)を実行することができます。

誰かがこれらの2つのオプションの違いを明確にすることができますか?どちらを使用するのですか?

4

1 に答える 1

81
git merge --no-commit

これは通常のマージと同じですが、merge-commitは作成されません。このコミットはマージコミットになります。履歴を見ると、コミットは通常のマージとして表示されます。

git merge --squash

これにより、マージコミットを作成せずに、変更が作業ツリーにマージされます。マージされた変更をコミットすると、ブランチでの新しい「通常の」コミットのように見えます。履歴にマージコミットはありません。マージされたすべての変更に対してチェリーピックを行ったようなものです。

于 2012-03-07T10:33:04.067 に答える