Is there a way to limit git diff to changed files? I'd like to see the differences between two commits, but exclude paths that don't exist in one or the other (additions/deletions). The following Perl one-liner illustrates most of what I want: git diff master.. | perl -lnwe 'print unless /^(new|deleted) file/../^diff/ and not /^diff/' But that leaves diff --git a/path b/path lines for the files th
Gitでファイル管理しているのに、クライアントがGit使っていないから納品ファイルを zip で送らなければならないなんてことがあったりします。 一度にまとめて送れる時は、ローカルのファイルをそのまま zip にするだけですが、なぜか「差分ファイルがどれかわかるようにください」なんていうなんとも面倒な依頼があったりします。 コマンド一発とかでいいからできないかなーと検索したところ、 Git 管理さえしていたらできる! メモ用エントリーとしてのこしておきます。 1個前のコミットから現在のコミットまでの差分を抽出してzip参考にしたのは下記。 gitで差分ファイルを抽出する - Qiita 1個前のコミットから現在のコミットまでの差分を抽出してzipする場合は下記のコマンドになるようです。 参考先のではdiffの最後が HEAD^ になっていたのですが、それではうまく動作せずにエラーになったの
git diff 使い方 ワークツリーとインデックスの差分を表示する git diff とするとワークツリーとインデックスの差分が表示される。 ワークツリーと HEAD の差分を表示する 現在のワークツリーが最後のコミットからどのように編集されたかを調べるには git diff HEAD とする。 特定のファイルの差分を表示する 「git diff」の後にパスを指定すればよい。 このときに、「git diff」の後にコミットを指定していて うまくいかないような場合は、「–」をはさむ。 たとえば、file1.txt、file2.txt の差分を表示するには git diff file1.txt file2.txt git diff -- file1.txt file2.txt とする。 インデックスと HEAD の差分(次にコミットする差分)を表示する 次にコミットする内容を表示するには「–
Git に同梱されている contrib/diff-highlight を使います。 あとは README に書いてあることの引き写しですが、PATH の通ったディレクトリに置いて、~/.gitconfig に以下のように設定を書く。 [pager] log = diff-highlight | less show = diff-highlight | less diff = diff-highlight | less すると、対応するコマンドの出力がこんな風になります。 行レベルの diff に加えて、単語レベルでの diff もハイライトされ、GitHub での diff のように描画されました。 組み込みのオプションで --color-words というのがありますが、こちらを使うと行レベルの diff 情報が失われるので、少し不便だったわけですね。とすべて README に書いてあ
Git の 1.7.11 から git difftool コマンドに --dir-diff というオプションが追加されたのですが、これがライフ チェンジングだと思ったので紹介します。 --dir-diff 登場以前の git difftool は「ファイルごとに順番に差分を表示していく」ことしかできず、使い勝手はいまいちでした。それが、--dir-diff オプションの登場で状況が一変したわけです。 こんな感じの使い心地だよ ある Git レポジトリーで dir1/a.txt と dir2/c.txt を編集したとしましょう。 この状態で git difftool --dir-diff または git difftool -d を実行してみると・・・。 はい、差分のあるファイルが一覧で表示されました。 (difftool に WinMerge を設定して、メニューから [ツリー表示] を有効
いつもはAraxis Mergeを使っているが諸事情(ライセンス都合)につきWinmergeでセットアップしてみた。 Araxis Mergeを設定したときの記憶によると、1.6.4以降で微妙に書き方が異なる。とはいえ以前の書き方でも動いていた気がするが。 参考: http://www.araxis.com/merge/scm_integration.html#msysGit WinMergeのインストール http://winmerge.org/からダウンロードしてインストール。 WinMerge 2.12.4をいれたが、サイトやヘルプをみてもgitについての設定は載っていない。軽くググるとgitからのコマンドラインに対応していないので別途スクリプトをつくって変換してあげないといけないようだ。 git用のスクリプト作成 どこでもいいが$HOME/につくることにする。Vista以降ならC:
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く