私はGit Extensionsをしばらく使用しています(すごい!)が、以下に対する簡単な答えは見つかりませんでした:
コミットメッセージを入力するときに、タイプミスをすることがあります。私の友人は、次の方法でそれを修正する方法を教えてくれました(Git Extentions):
コミットを右クリック>詳細設定>コミットの修正
次に、[修正]ボックスをオンにして、メッセージを書き直します。コミットメッセージが修正されました。
しかし、この他のオプション「Squash commit」...私はいつもそれが何をしているのだろうと思っていましたか?!
私の質問は:
Git/Git ExtentionsのSquash commitとFixup commitの正確な違いは何ですか?彼らはちょっと... "similar"私に:
Git Extensionsがそれを具体的にどのように使用するのかわかりませんが、git rebase
には、スカッシュでコミットを自動的にスカッシュまたは修正するオプションがあります。または修正!プレフィックス、それぞれ:
--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
としてマークされた各コミットは、そのメッセージをpick
またはreword
コミットメッセージの一部として使用する機会を与えます。
fixup
を使用すると、そのコミットからのメッセージは破棄されます。
git-rebase doc から:
2つ以上のコミットを1つにフォールドする場合は、2つ目以降のコミットのコマンド「pick」を「squash」または「fixup」に置き換えます。コミットの作成者が異なる場合、折り畳まれたコミットは最初のコミットの作成者に起因します。折り畳まれたコミットに推奨されるコミットメッセージは、最初のコミットのコミットメッセージと「squash」コマンドを使用したコミットメッセージの連結ですが、「fixup」コマンドを使用したコミットのコミットメッセージは省略します。
私はgit拡張機能をいじくり回しましたが、多くのコミットを1つにまとめることはできませんでした。それを行うには、コマンドラインに頼らなければならず、 この投稿 役に立ちました
git rebase -i Head~2
これは対話型のリベースであり、次のことに注意してください。