cvsスタイルのdiffのようなgit diffsの出力形式を作る方法はありますか?私はgit diffsが読みにくくなることを発見します。また、more
に表示されるgit diffsは迷惑です。どうすれば無効にできますか?CVSスタイルの差分をgitに
答えて
書式設定、標準デフで再生してみてください:これは無い文脈で、CVSのような改行とoldlinesを与えるが、そうでない
git difftool -y -x "diff --unchanged-group-format='' --old-line-format='< %L' --new-line-format='> %L'"
異なる行のグループの間にエキストラを挿入します。残りの部分をどのように達成するかはわかりませんが、私はあなたがCVSのようなフォーマットをしたいと思う程度はわかりません。詳しくは
については
man diff
また
git difftool -y -x "diff -n"
を参照してくださいしかし、私は、これは何をしたいん疑います。これがうまくいく場合は、git diffで毎回動作させるようにするには、受け入れられた回答のhttp://jeetworks.com/node/90を参照するConfiguring diff tool with .gitconfig?を参照してください。
これはhttp://stackoverflow.com/questions/11331582/how-to-make-git-diff-output-normal-diff-format-non-unified-non-contextと組み合わせると、私が欲しいものが私に与えられます。乾杯 – user1207217
あなたは空の文字列にcore.pager
を設定することにより、ページャを無効にすることができます
git config --global core.pager ''
これはうれしいことです。私はupvoteしたいと思うが、私はできないようだ... – user1207217
私はそれを行うための通常の方法は 'cat'に設定することだと思います。 –
catに設定するのが控えめに見えます。 – user1207217
git diff
は、デフォルトでは、「ユニバーサル」形式、diff -u
を使用しています。 cvs diff
は、より古い標準差分形式(<
でマークされた削除された行、>
でマークされた行が追加され、各差分の前後にコンテキストはありません)を使用します。
あなたは(あなたがGNUのdiffutilsを使用している、少なくとも場合)5つのコンテキストの行ではなく、デフォルト3.
diff --normal
を取得するには、例えば、git diff -c
を使用して、「コンテキストdiff」、またはgit diff -C5
をします取得することができます古いスタイルの差分を生成しますが、git diff
は--normal
オプションを認識していないようです。
個人的には、私は文脈の差分を旧式の差分よりもはるかに読み易いので、古いスタイルの差分をgit diff
で使う必要はないことが分かりました。 git diff -c
を試してください(ページャを無効にするためのhaggai_eの提案とともに)。
古いスタイルの差分(<
、>
、コンテキストなし)が本当に必要な場合は、おそらくそれを行う方法があります。
EDIT:
git diff
はあなたがやりたいしない場合は、ファイルのリビジョンのコピーを抽出し、それらの上に好きな差分ツールを使用することができます。私自身のget-versions
ツールは、git(またはRCSまたはCVS)からファイルの複数のバージョンを抽出できます。
もう少し複雑ですが、ここに別の解決方法があります。例として、git
自体のgit repoをクローンしました。私はトップレベルREADME
ファイルの2つの連続したバージョンを比較したい場合は、私がこれを行うことができます。
$ diff --normal <(git show 779d7e93773a0dcf918dc77023511fdc68161bd8:README) \
<(git show 71ce415dc088f19a0b8d6c8567dfdd6d851842b2:README)
24,26c24,25
< compatible with the GPLv2).
< It was originally written by Linus Torvalds with help of a group of
< hackers around the net. It is currently maintained by Junio C Hamano.
---
> compatible with the GPLv2). It was originally written by Linus
> Torvalds with help of a group of hackers around the net.
$
小さなスクリプトでこれをラップするのは簡単だろう。
:
(上記の例ではREADME
)に続くファイルパスは、現在のディレクトリではなく、リポジトリのルートからの相対パスであることに注意してください。名前の前には./
を付けて、現在のディレクトリからの相対パスにすることができます。 (後者はgitの一部の古いバージョンでは動作しない場合があります。)
これは関係するgitのバージョンを知りませんが、 "git version 1.7.7.6"の場合、git diff -cは無効ですが、git diff -Un(コンテキスト行数ではn)が機能します。 git diff -U0はほとんど私に欲しいものを与えてくれますが、私はまだ外観が気に入らないのです。 これはすべての好みの問題です。実際には、コンテキストの差分を優先していますが、私のためにコミットする前に正気のチェックではありません。コンテキスト差分が必要な場合は、私はmeldを使用しています。 しかし、チップのための乾杯。再び、私はそれが私に許されるならマークアップします。 – user1207217
http://stackoverflow.com/questions/11331582/how-to-make-git-diff-output-normal-diff-format-non-unified-non-context-ここでは--normalオプションを渡すことができます。歓声 – user1207217
@ user1207217:私は私の答えを更新しました(私は上記のコメントのリンクを読む直前)。 –
- 1. CVS:2つのHEADリビジョン間のリモートCVSサーバ上のコマンドライン差分
- 2. PythonのGitの差分パーサ
- 3. Gitの差分インデント/プリティ・印刷/美しくは差分
- 4. Gitすべての差分を検索
- 5. CVSをgit scmにインポートするには?
- 6. Gitリポジトリ:いいえマッチregexpに/差分--git
- 7. 最後のCVSコミットの最後のメッセージまたは差分を取得
- 8. 除去はGitの差分やgitの状態で
- 9. 差分を助けるためにGitにヒントを追加
- 10. CVSアンサーサンドモジュールはgitと同等です
- 11. CVSまたはSVNまたはGIT?
- 12. Drupal 7 CVS、SVNまたはgitアクセス
- 13. gitの差分を表示し、タブと空白が異なっ
- 14. Gitの差分だけの行番号好きどのよう
- 15. kdiff3を使ってgitで差分を編集する
- 16. git checkoutの差分チェックアウト元/ <branch-name>とgit checkout <branch-name>?
- 17. `git log`で単語差分を取得できますか?
- 18. Git GUIから差分ツールを起動します
- 19. Git diff - 差分リストを終了する方法
- 20. gitの差分フィルタレポートは変わらない汚れ/洗浄ファイル
- 21. WebStormとGit:2つのコミットの差分を見つけるには?
- 22. CVSインポート後にgitフォルダにファイルがありません
- 23. アプタナファイルの差分?
- 24. テキストの差分
- 25. CVSからcvs2gitを使用したGITへの移行
- 26. gitをCVSのプロキシとして使用する方法
- 27. CVSでgitを使用するためのベストプラクティス
- 28. Debianでcvsからgitに変換する
- 29. 並列GIT + CVSプロジェクトでのキーワード拡張の扱い
- 30. 日付の差分を計算し、差分を動的に表示する
これは本当に2つの別々の質問だったはずです。 –