私のワークフロー:
- マスターからの分岐
- 私のブランチで働き、頻繁にコミットする (100+)
- ブランチでジョブが完了したら、マスターをブランチにマージし、すべての競合を解決します。
- マスターにマージする前の CODE REVIEW TIME
CODE REVIEW では、2 つの頭の違いを示し、コミットを圧縮/整理する必要があります(約 5 つのコミットで)。このタスクに最適な GUI (クロスプラットフォーム?) は?
私のワークフロー:
CODE REVIEW では、2 つの頭の違いを示し、コミットを圧縮/整理する必要があります(約 5 つのコミットで)。このタスクに最適な GUI (クロスプラットフォーム?) は?
WindowsおよびMac用のSourcetree無料GitGUIは、これをサポートしています。
または、GUIなしで実行するには、次のコマンドを実行します。
git rebase --interactive --autosquash
!squashで始まるコミットメッセージでコミットしたため(これらの中間コミットがほぼ同じタスクであった場合) 「GITチェックインのトリミング/GIT履歴
のスカッシュ
」を参照してください。
「git diff」コマンドの出力は、「git difftool」コマンドを使用して GUI ツールに表示できます。
まず、必要な 'diff' コマンド: 'master' から分岐して以来、'mybranch' のすべてのコミットによって導入された累積差分を表示します。
git diff master...mybranch
また
git diff master...HEAD
これは、その間にマスターで発生したコミットを除外することに注意してください。これは、mybranch を確認している場合に必要になる可能性があります。
mybranch が現在のヘッドである場合、これは次のように省略できます。
git diff master...
Git は、「git difftool」を使用して、diff コマンドからの出力を約 8 つの既知の GUI ツールのリストの 1 つにフィードします。私は OSX で kdiff3 を使用しており、過去には Linux でも楽しく使用していました。必要に応じて 3 方向のマージを行うことができ、使用するハンクを選択するだけでなく、マージの出力を手動で編集できるため、私は kdiff3 を好みます。
最初に kdiff3 をインストールしてから、シンボリック リンクを PATH に追加します。私にとって、それは:
ln -s /Applications/kdiff3.app/Contents/MacOS/kdiff3 /usr/local/bin/kdiff3
次に、GUI 差分ツールとして kdiff3 を使用することを git に伝えます。
git config --global merge.tool kdiff3
次に、差分を表示します。
git difftool master...
Eclipseは比較部分を行うことができます。プロジェクトを右クリックして選択できます
Team->Advanced->Synchronize With...->(branch you want to compare against)
これは、2 つのブランチ間の差分を示しています。ただし、gitも、私が知っているgit GUIも、IMHOがあまりにも悪いコミットの押しつぶしをサポートしていません。
だから私はやってしまう
git rebase --interactive HEAD~3
(3つのコミットがある場合は、スカッシュしたい)。
Linux では、git の 2 つのお気に入りの GUI はgitgとmeldです。あなたのケースでコード レビュー用の正しい diff を取得するには、gitg を起動し、マージ元のマスターで最新のコミットを見つけます (重要なことに、最後にマージしてからマスターが進んだ場合に備えて、マスターの現在のヘッドに対して diff を実行したくありません)。 )。この SHA1 をコピーして、次の場所に配置しますgit difftool
。
git difftool -t meld <SHA1>
毎回メルドを difftool として指定する必要がないように設定するには、設定で設定するだけです。
git config --global diff.tool meld