Git/Git Extension の「squash」と「fixup」の違いは何ですか? 質問する

Git/Git Extension の「squash」と「fixup」の違いは何ですか? 質問する

私は使っていますGit 拡張機能しばらく前から(素晴らしい!)ですが、次の質問に対する簡単な答えが見つかりません。

コミット メッセージを入力するときに、タイプミスをしてしまうことがあります。友人が、次の方法で修正する方法を教えてくれました (Git Extentions を使用)。

コミットを右クリック > 詳細設定 > コミットの修正

ここに画像の説明を入力してください

次に、「修正」ボックスをチェックしてメッセージを書き換えるだけで、コミット メッセージが修正されました。

しかし、この他のオプション「Squash commit」...私はいつもそれが何をするのか疑問に思っていました。

私の質問は次のとおりです:

誰か私に、正確な違いを説明してください。スカッシュコミットそして修正コミットGit/Git 拡張機能? 見た目はちょっと…"似ている"私に:ここに画像の説明を入力してください ここに画像の説明を入力してください

ベストアンサー1

Git Extensions が具体的に何をするのかはわかりませんが、git rebaseそれぞれ squash! または fixup! プレフィックスを使用してコミットを自動的に squash または fixup するオプションがあります。

   --autosquash, --no-autosquash
       When the commit log message begins with "squash! ..." (or "fixup!
       ..."), and there is a commit whose title begins with the same ...,
       automatically modify the todo list of rebase -i so that the commit
       marked for squashing comes right after the commit to be modified,
       and change the action of the moved commit from pick to squash (or
       fixup).

squash と fixup の違いは、リベース中に、squash元のコミットと squash コミットのメッセージを結合するように求めるプロンプトが表示されるのに対し、このfixup操作では元のメッセージが保持され、fixup コミットからのメッセージが破棄される点です。

おすすめ記事