git 如何所有分支里边搜索代码片段

2022-01-20 17:53:09 +08:00
 huazhaozhe

本来有个表基本不需要更新,突然今天要更新一下,写代码的人离职了,整理数据的代码又不知道提交到那个分支上去了也没合并,好一个大坑,那么怎么找到这部分代码呢

搜索了下尝试了下边这个方式不得行

git grep "are you ok" | $(git rev-list --all)
4186 次点击
所在节点    git
35 条回复
gadfly3173
2022-01-20 18:00:45 +08:00
知道提交时间的话不如直接去看提交记录
huazhaozhe
2022-01-20 18:02:07 +08:00
@gadfly3173 都不知道在哪个分支怎么看体检记录🤢
huazhaozhe
2022-01-20 18:04:16 +08:00
更新
linux 下这个命令跑了好久终于有结果了,代码也没那么多啊,可能是分支太多了吧🙃
这个命令在 windows 下要怎么使用呢
gadfly3173
2022-01-20 18:06:10 +08:00
@huazhaozhe #2 用 gui 可以看,比如 sourceTree gitkraken 之类的
huazhaozhe
2022-01-20 18:09:26 +08:00
@gadfly3173 emm 虽然知道这些个工具但是没用过,一般都是命令行
wolfie
2022-01-20 18:13:10 +08:00
A B C D ... 每个分支一个独立文件夹。
用 IDE 打开父文件夹。
gadfly3173
2022-01-20 18:15:39 +08:00
@huazhaozhe #5 以及 powershell 不支持这个命令的写法的话可以直接用 git bash
huazhaozhe
2022-01-20 18:16:55 +08:00
@wolfie 好几百个分支,写个程序每个分支复制一个文件夹也不是不可以,然后文本搜索呢,虽然我有工具全盘搜索文本内容,嗯,感觉一个小时能弄完😏
huazhaozhe
2022-01-20 18:19:17 +08:00
@gadfly3173 git bash 告诉我参数太长,我很想知道 windows 里边怎么写 linux 里边的$(ls -a)这样子的命令,cmder 测试不支持
daxiguaya
2022-01-20 18:21:44 +08:00
gadfly3173
2022-01-20 18:23:14 +08:00
@huazhaozhe #9 gitbash 有那么容易参数过长么。。。你的输入是啥啊
rbe
2022-01-20 18:26:25 +08:00
@huazhaozhe #9 参数太长就用 xargs
git rev-list --all | git grep "are you ok"
huazhaozhe
2022-01-20 18:26:41 +08:00
@gadfly3173 就正文里边的那个
huazhaozhe
2022-01-20 18:28:38 +08:00
@rbe 这个搜不到结果命令就结束了
huazhaozhe
2022-01-20 18:30:23 +08:00
@daxiguaya 内网环境没有这个东西😤
gadfly3173
2022-01-20 18:34:27 +08:00
@huazhaozhe #15 下面有本地部署的
rbe
2022-01-20 18:35:02 +08:00
@huazhaozhe #14 搜不到结果?那说明你搜错了吧,尝试缩小一些关键词范围呗.
还有个办法是 git bisect 二分查找,每次 checkout 之后去检查代码里有没有你要的那些信息
huazhaozhe
2022-01-20 18:38:50 +08:00
@rbe windows 下尝试确实是的,linux 还没试过,不过内容肯定存在的,因为 linux 下已经通过正文里边的方式搜到结果了
gadfly3173
2022-01-20 18:38:57 +08:00
说来你知道是谁提交的话 还有个方法是 git log --pretty="%h - %s" --author='Junio C Hamano' --since="2008-10-01" \
--before="2008-11-01" --no-merges -- t/ 参考 https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2
huazhaozhe
2022-01-20 18:39:55 +08:00
貌似通过 git rev-list --all --grep=addE 可以一个命令完成,明天去试试,下班下班

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/829528

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX