【发布时间】:2021-10-20 05:25:36
【问题描述】:
我想要一个简单的 shell 命令来查找我当前分支和存储库主分支之间差异中的 TODO。
在我们的团队中,我们达成了一项协议,即我们不会向代码库添加新的待办事项,但我们的存储库中仍然有几个较旧的待办事项。然而,当我工作时,我喜欢在代码中留下一个待办事项,这样我就不会忘记查看或清理东西。
我已经可以实现的是使用grep 在差异中显示TODO 项目。例如,如果主分支称为develop(但老实说,它与main、master 的工作方式相同:
# command
git diff develop HEAD | grep TODO
# output
+ // TODO: How to handle when summary is missing?
+ // TODO: How to handle this error? Exception?
+ // TODO: add function to build basket, maybe?
+ // TODO: Find a better place to set up this mock
这是一个好的开始,但如果文件名(包括这些待办事项)也被打印出来会更好。我当前方法的另一个问题是,如果在 TODO 之后没有消息,我就无法在我的项目中真正搜索它(如果代码库有之前添加的 TODO(并且是主分支的一部分)
【问题讨论】:
-
使用
git grep在每个文件的已提交(HEAD 副本)中为 TODO 运行 grep(带有行号和文件名)。使用git grep在每个文件的工作副本中为 TODO 运行另一个 grep(带有 #s 行和文件名)。比较两个结果并查找插入(新的 TODO)和删除(现在消失的旧 TODO)。 -
@LMC 谢谢你的链接,但这是一个不同的问题......
-
使用 git diff 的起点可以是:
git diff -U0 -G TODO。这应该将您的差异缩小到包含单词TODO的部分