2013-05-26 46 views
66

は、私が(!それは素晴らしいです)今しばらくGitの拡張を使用してきたが、私は次のように簡単な答えを見つけることができます:コミットメッセージを入力するときGit/Git Extensionの "squash"と "fixup"の違いは何ですか?

は時々、タイプミスをします。私の友人はそれを(GitのExtentionsで)次のように修正する方法を教えてくれました:

右クリック

コミット上> [詳細]> [フィックスアップ

enter image description here

をコミットその後、私は単にチェックボックス "修正"と私のメッセージを書き直すとボイル!私のコミットメッセージは修正されました。

しかし、この他のオプション "スカッシュコミット" ...私はいつもそれが何を疑問に思っていますか?

私の質問は:

誰かが単にスカッシュ間の正確な違いはフィックスアップがのGit/GitのExtentionsをコミットコミットされたものを私に説明しますか? enter image description here enter image description here

答えて

85

私はGitの拡張機能は、特にそれで何をするかわからないが、Gitのリベースはに自動的にカボチャやフィックスアップオプションスカッシュとのコミットを持っている:彼らは... 「類似」私に親切にしています!またはフィックスアップ!それぞれ接頭辞、:

--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). 

スカッシュとフィックスアップの違いは、フィックスアップ操作は、元のメッセージを維持する一方でリベース中に、スカッシュ操作は、オリジナルとスカッシュコミットのメッセージを結合するように求められますということですフィックスアップコミットからメッセージを破棄します。

+4

[rebuild]とsquash/fixupの詳細については、[The Git docs](http://git-scm.com/docs/git-rebase)を参照してください。 –

+0

これはすばらしい答えです。どうして私がコンビネーションコミットメッセージを持っているのか、いつも不思議です –

39

一連のコミットを再設定すると、コミットするたびにsquashとマークされたコミットは、メッセージをpickまたはrewordコミットメッセージの一部として使用する機会を与えます。

fixupを使用すると、そのコミットからのメッセージは破棄されます。 git-rebase docから

9

あなたは1に2つの以上のコミットを折るしたい場合は、「スカッシュ」または「に修復し」と目以降のコミットのための「ピック」コマンドを交換してください。コミットに異なる作者がある場合、フォールトされたコミットは、最初のコミットの作者に帰属します。折り返しコミットのために提案されたコミットメッセージは、最初のコミットのコミットメッセージと "スカッシュ"コマンドのコミットメッセージの連結ですが、 "fixup"コマンドを使用してコミットのコミットメッセージは省略します。

0

私はgit拡張機能を使用していましたが、多くのコミットを1つにすることができませんでした。これを行うには、私は、コマンドラインに頼る必要があったとthis post役立つ

git rebase -i Head~2 

を見つけました。これは、対話的なリベースで、次の点に注意してください。ここ

  • 〜2は、あなたがしたいどのように多くのコミットを指し、現在のヘッドを含むこの操作に含まれます
  • サブクラスのインタラクティブな編集ウィンドウを編集する必要があります。最初の項目を「選択」のままにして、後続の行を「スカッシュ」に置き換えます。上記のリンクの説明は、これが不透明であればはるかに明確です。
関連する問題