我正在浏览一个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中有可能吗?
答案 0 :(得分:3)
Git pickaxe可能确实想要你 - 例如,如果你想找到与st_mode
相关的每一个变化
git log -Sst_mode
基本上它是一个grep字符串,因为git会返回它找到的包含该字符串的任何提交。
git blame也可能有所帮助。这将显示文件名中第100行到第125行的最后提交git blame -L100,125 filename