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 pickaxe 可能确实想要你想要的 - 例如,如果你想找到与st_mode

git log -Sst_mode

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

git blame 也可能有帮助。这将显示文件名中第 100 到 125 行的最后提交

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