• 欢迎访问吴爸爸的技术小木屋

如何知道代码是哪个commit_id增加或删除的?

git [email protected] 2年前 (2022-12-10) 843次浏览 0个评论

Screenshot from 2022-12-10 22-30-27 (1)

1. 背景

突然测试过来跟你说代码测试不pass,然后检查了相应发布的代码,会发现某段代码被删除了,但是又不知道是谁删除的,也不知道是怎么被删除的。这个时候就会想知道这段代码什么时候创建的,什么时候被删除的。甚至可能想不起来这代码为什么被删除。

其实这种情况更多的是出现在代码合并的时候,在进行多方合并的时候就有可能不小心合并出现了问题。这个时候又不知道是哪个commit id删除的,这样就很难定位出是哪个commit id出现的问题。这个时候就需要git log -S <string> --oneline解决这个问题。

2. git log --oneline -S <string>使用示例

有一个项目,里面仅有一个example.txt的文件,第一次提交时添加了如下内容:

test1
test2
test3
test4
test5

第二次提交,添加了test6,新的内容如下:

test1
test2
test3
test4
test5
test6

第三次提交,添加了test7,新的内容如下:

test1
test2
test3
test4
test5
test6
test7

第四次提交,删除了test4,新的内容如下:

test1
test2
test3
test5
test6
test7

查看提交的命令和结果:

$ git log --oneline
dc0be69 (HEAD -> master) delete test4
3f4cd9a add test7
c4db59e add test6
94e20d8 first commit

使用git log -S查看哪次提交是关于test4字符修改的:

$ git log --oneline -S "test4"
dc0be69 (HEAD -> master) delete test4
94e20d8 first commit

结果是符合预期的。

当然如果你确定在哪个文件修改的,那么也可以带上文件名:

$ git log --oneline -S "test4" example.txt
dc0be69 (HEAD -> master) delete test4
94e20d8 first commit

注意:这里的-S是大写字幕S


吴爸爸的技术小木屋 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何知道代码是哪个commit_id增加或删除的?
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址