git merge --squash
タイトルにあるように、aとaの違いについてはよくわかりませんgit merge --no-commit
。
のヘルプページを理解している限りgit merge
、どちらのコマンドも更新された作業ツリーに残り、編集してから最終コミット(または複数のコミット)を実行することができます。
誰かがこれらの2つのオプションの違いを明確にすることができますか?どちらを使用するのですか?
git merge --no-commit
これは通常のマージと同じですが、merge-commitは作成されません。このコミットはマージコミットになります。履歴を見ると、コミットは通常のマージとして表示されます。
git merge --squash
これにより、マージコミットを作成せずに、変更が作業ツリーにマージされます。マージされた変更をコミットすると、ブランチでの新しい「通常の」コミットのように見えます。履歴にマージコミットはありません。マージされたすべての変更に対してチェリーピックを行ったようなものです。