git:在较新的源文件中找到行的移动位置

时间:2018-07-17 12:14:59

标签: git

我看过A Whole New WorldGary Bernhardt谈话,他在虚构的编辑器中描述的一项功能将非常有帮助。

鉴于生产软件崩溃并产生堆栈跟踪/回溯,例如

undefined local variable or method `tweet_id' (NameError)
/Users/grb/proj/toot/database.rb:40:in `tweet_key'
/Users/grb/proj/toot/database.rb:33:in `tweet'

他的编辑器可以快进来查找当前代码源中可能的行位置。

这很有用,因为生产中的代码可能比当前代码更旧,并且错误消息中涉及的行可能已在文件中移动,因为可能会在我们感兴趣的行上方添加或删除其他行。因此,如果要解决当前代码中的问题,则必须首先在当前代码中找到行号。

对于大型代码库,能够精确定位新行的位置似乎是一个不错的功能。

我认为git可以做到这一点。但是我不知道要使用什么命令/选项。

特别是,git log -L 40:database.rb将显示该行之前发生的情况。

我想相反:给定生产 tag ,我希望git在将来搜索(相对于 tag )而不是过去。

是否有一个命令/选项可用于将过去的行号(产生 tag 转换到将来的行号( master ) em>)吗?

1 个答案:

答案 0 :(得分:0)

我不知道Git中有这样的功能。但是,我相信您可以模仿它:

  1. 从生产标签创建一个分支,然后签出。
  2. 在错误的代码行中添加标识性注释。
  3. 转到您的新分支
  4. master 合并到您的分支机构中。
  5. 搜索您添加的评论(例如,用grep)-该评论将位于新位置。