Git - 将旧提交与分支最新提交进行比较

时间:2018-04-03 12:08:39

标签: git commit

背景:我曾经做过的一个项目改变了它的许可,我想知道我的代码中还有多少仍在最终产品中。

如何获取旧的提交ID并将该提交中所做的更改与任何分支最新提交中的当前代码进行比较?

EX:我添加了一些代码

int b = j+k;
updateRefs(b,k);

以后这段代码变为

int b = j+m;
updateRefs(b,k);

我怎样才能看到我的代码中有多少(前updateRefs(b,k);)仍留在最新的分支提交中?

1 个答案:

答案 0 :(得分:2)

它会在边缘粗糙,但您可以使用git blame并通过grep管道。例如,在我的一个项目上运行(限制为10行,因为我是唯一的贡献者):

$ git blame CMakeLists.txt | grep Stephen | head -n 10
^72094b3 (Stephen Newell 2018-04-02 19:49:20 -0600   1) cmake_minimum_required(VERSION 3.9)
^72094b3 (Stephen Newell 2018-04-02 19:49:20 -0600   2) cmake_policy(VERSION 3.9)
^72094b3 (Stephen Newell 2018-04-02 19:49:20 -0600   3) 
^72094b3 (Stephen Newell 2018-04-02 19:49:20 -0600   4) project("houseguest"
^72094b3 (Stephen Newell 2018-04-02 19:49:20 -0600   5)     LANGUAGES
^72094b3 (Stephen Newell 2018-04-02 19:49:20 -0600   6)         CXX
^72094b3 (Stephen Newell 2018-04-02 19:49:20 -0600   7)     VERSION
^72094b3 (Stephen Newell 2018-04-02 19:49:20 -0600   8)         0.1.0
^72094b3 (Stephen Newell 2018-04-02 19:49:20 -0600   9) )
^72094b3 (Stephen Newell 2018-04-02 19:49:20 -0600  10)

这将显示最后触及该行的人,因此它会错过某些情况(例如,空格更改或添加到该行的注释)。应该至少给你一个粗略的估计。