有可能看到带有git blame
的行的 source / original 行号,但是它根据最后一次提交的行号显示了行号修改
我想对文件的特定提交/修订执行相同的操作。
示例
文件:file.ext
( xyz11 是我们当前正在审核的文件的修订/提交)
内容:
Line 1 (**abc11** is the last commit changed this line)
Line 2 (**abc12** is the last commit changed this line)
Line 3 (**abc13** is the last commit changed this line)
我想获得“第3行” 的“ 3” 。 Git会根据行的提交(abc13)提交来显示此信息。但是,由于 xyz11 和 abc13 修订版包含不同的内容,因此 xyz11 中的实际行号可能会有所不同。
那么我如何获得文件特定版本中的行号?
注意:我说“源/原始行号” ,因为即使文档很脏(有未提交的更改),我也想获取正确的行号,可以使用git blame
>
我的情况是,我将在API请求中使用这些行号添加行内注释
所以,假设我已经修改了file.ext
Line 1
Line 2
Uncommited Line
Uncommited Line
Line 3
对于“第3行” ,我应该仍然保持“ 3” ,而不是“ 5” ,否则注释将进入错误的行。正如我说的,git blame
可能实现,但它会根据该行的提交显示此信息
谢谢
答案 0 :(得分:3)
如果我对您的理解正确,则说明您的文件中包含未提交的更改,并且您的 $('.sendRMA').on("click", function () {
$(this).parents('tr').next().toggle("slow");
});
如下所示。
git blame
使用$ git blame foo
^592c0a1 (Michael G. Schwern 2019-01-01 12:56:35 -0800 1) Line 1
^592c0a1 (Michael G. Schwern 2019-01-01 12:56:35 -0800 2) Line 2
00000000 (Not Committed Yet 2019-01-01 12:58:04 -0800 3) Uncommitted Line
00000000 (Not Committed Yet 2019-01-01 12:58:04 -0800 4) Uncommitted Line
^592c0a1 (Michael G. Schwern 2019-01-01 12:56:35 -0800 5) Line 3
显示原始提交中的哪一行。
-n
要忽略所有未提交和未暂存的更改,请使用$ git blame -n foo
^592c0a1 1 (Michael G. Schwern 2019-01-01 12:56:35 -0800 1) Line 1
^592c0a1 2 (Michael G. Schwern 2019-01-01 12:56:35 -0800 2) Line 2
00000000 3 (Not Committed Yet 2019-01-01 12:58:47 -0800 3) Uncommitted Line
00000000 4 (Not Committed Yet 2019-01-01 12:58:47 -0800 4) Uncommitted Line
^592c0a1 3 (Michael G. Schwern 2019-01-01 12:56:35 -0800 5) Line 3
。 git blame <file> HEAD
是最后一次提交。这将从HEAD
向后查找文件的所有更改。由于介入式提交也会使行号掉线,因此您仍然希望HEAD
获得该提交中的行号。例如。
-n
答案 1 :(得分:1)
git blame 有一个 rev 选项,因此,您可以指定要归咎的提交/修订:
git blame <rev> file
git blame xyz11 file.txt
中的更多信息