39
  1. 別の質問に対するこの答えを考えると、
  2. git-loggit-whatchangedの両方のマニュアルページがgit-rev-listからプルすると言っていることを考えると...

...では、2つのコマンドの違いは何ですか?なぜそれらの両方をわざわざ持っているのですか?

4

3 に答える 3

39

コミット52f425e1(2013年8月30日)は次のように述べています。

新規ユーザーにlog代わりに''を使用するように促します。最近では、これらのコマンドは統合されており、デフォルトが異なります。

' git log'は、ログメッセージを表示することのみを許可し、2005年6月上旬に追加されたときはdiffを表示できませんでした。コマンドがdiffオプションを使用することを学習したのは、2006年4月上旬のみでした。
このため、パワーユーザーはwhatchanged2005年5月中旬からすでに存在しdiffオプションをサポートしている''を使用する傾向がありました。


これが、新しいバージョンのマニュアルページのgit whatchanged内容です。

新規ユーザーは代わりに使用することをお勧めしますgit logwhatchangedコマンドは基本的に同じですが、 git log デフォルトではraw形式のdiff出力を表示し、マージをスキップします。

コマンドは主に歴史的な理由で保持されます。Linuxカーネルメーリングリストを読んで発明されたずっと前にGitを学んだ多くの人々の指は、git logそれを入力するように訓練されています。

torekの コメントとして、git whatchanged同等のものは次のようになります。

git log --raw --no-merges

(それはこの質問を回避するでしょう)

于 2013-09-03T06:11:33.270 に答える
13

最も単純な形式では、「git log」は各コミット(sha、author、date、message)を示し、「gitwhatchanged」はコミットと変更されたファイルを示します。例えば:

$ git log
commit db9f525674443314a9822a6bd6c3acce49c8f8d6
Author: ...
Date:   Wed Apr 4 22:55:33 2012 -0700

Add more

commit eed0b7aa3cad5d985b5f1d52f3c0605339c119a1
Author: ...
Date:   Tue Apr 3 20:36:04 2012 -0700

del bing/one.c

しかし、何が変わったのか:

$ git whatchanged
commit db9f525674443314a9822a6bd6c3acce49c8f8d6
Author: ...
Date:   Wed Apr 4 22:55:33 2012 -0700

Add more

:100644 100644 f2e4113... d415016... M  bar.c

commit eed0b7aa3cad5d985b5f1d52f3c0605339c119a1
Author: ...
Date:   Tue Apr 3 20:36:04 2012 -0700

del bing/one.c

:100644 000000 e69de29... 0000000... D  bing/one.c

各コマンドの出力を変更するためのオプションはたくさんあります。たとえば、「git whatchanged -p」は、diff/patch形式の変更を示します。

于 2012-04-05T06:00:51.117 に答える
3

私は完全には同意しません。変更されたファイルをとマージするのを見ることができますlogか?

この機能は見つかりませんでした。ファイルがブランチでマージされた時期を知るのに非常に役立ちます。例:

file c.cbranch1コミット日が2012年1月1日からあり、にマージを実行しbranch2、後でそのコミットが導入された日をフォローしたい場合はbranch2git log役に立ちますか?マージがある場合は、それらを検索できますgit whatchanged -m sha1

于 2012-08-22T22:55:06.377 に答える