如何查找有关某个特定数据结构的更改?

时间:2012-09-01 23:54:19

标签: git

我正在浏览一个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中有可能吗?

1 个答案:

答案 0 :(得分:3)

Git pickaxe可能确实想要你 - 例如,如果你想找到与st_mode相关的每一个变化

git log -Sst_mode

基本上它是一个grep字符串,因为git会返回它找到的包含该字符串的任何提交。

git blame也可能有所帮助。这将显示文件名

中第100行到第125行的最后提交
git blame -L100,125 filename