2

私はgitリポジトリを閲覧しています。ファイル cache.h にデータ構造があるとします。

struct cache_entry {
    struct cache_time ctime;
    struct cache_time mtime;
    unsigned int st_dev;
    unsigned int st_ino;
    unsigned int st_mode;
    unsigned int st_uid;
    unsigned int st_gid;
    unsigned int st_size;
    unsigned char sha1[20];
    unsigned short namelen;
    unsigned char name[0];
};

この特定のデータ構造の変更を含む後続のバージョンをすべて見つけるにはどうすればよいですか?

たとえば、20 回のコミットの後、作成者は上記のデータ構造に新しいエントリを追加しました。

基本的には、特定のデータ構造に関するコードの進化を見たいと思っています。

これは Git で可能ですか?

4

1 に答える 1

3

Git つるはしはあなたが望むかもしれません - たとえば、に関連するすべての変更を見つけたい場合st_mode

git log -Sst_mode

git はその文字列を含むコミットを返すため、基本的には grep 文字列です。

git Blame も役立つ場合があります。これにより、ファイル名の 100 行目から 125 行目までの最後のコミットが表示されます。

git blame -L100,125 filename
于 2012-09-01T23:57:19.103 に答える