我正在学习git
,想知道如何使用git show commit_id
获取修改后的行的确切行号。我正在编写一个python
脚本来完成某项任务,并希望修改行的确切行号。例如,请考虑以下事项:
//some extra lines here...
diff --combined describe.c
index fabadb8,cc95eb0..4866510
--- a/describe.c
+++ b/describe.c
@@@ -98,20 -98,12 +98,20 @@@
return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
}
- static void describe(char *arg)
-static void describe(struct commit *cmit, int last_one)
++static void describe(char *arg, int last_one)
{
+ unsigned char sha1[20];
+ struct commit *cmit;
struct commit_list *list;
static int initialized = 0;
struct commit_name *n;
+ if (get_sha1(arg, sha1) < 0)
+ usage(describe_usage);
+ cmit = lookup_commit_reference(sha1);
+ if (!cmit)
+ usage(describe_usage);
+
if (!initialized) {
initialized = 1;
for_each_ref(get_name);
在此输出中,从顶部的5
行,给出98
,但这不是我们进行更改的行号。我们如何得到修改线的确切行数。一种选择是我们扫描文件并使用git show commit_id
输出的内容查找行号,但效率不高。