【问题标题】:see history of region in git在 git 中查看区域的历史
【发布时间】:2014-07-15 15:35:41
【问题描述】:

我想知道有没有办法在 git 中查看一个区域的历史,即所有涉及某些代码的提交(定义为几行连续的代码)?我觉得这很酷。

我正在使用 magit,所以任何关于如何使用 magit 来实现这个目标的建议会更好。

【问题讨论】:

标签: git emacs magit


【解决方案1】:

第一个简单的解决方案是git log -- file1 file2 dir1:它只会显示触及那些文件/目录的提交。

另一种方法是使用 git gui blame <commit> file 在这里文件的每一行都将使用引入它的 sha1 进行注释,您可以单击这些 sha1 在提交之间导航。

【讨论】:

  • 谢谢@gturri。 git gui blame 是我正在寻找的工具。 magit-blame-mode 提供了一种方法来检查在 emacs 中修改区域的最新版本。
【解决方案2】:

你可能想要git-log -L

 -L <start>,<end>:<file>, -L :<regex>:<file>
     Trace the evolution of the line range given by "<start>,<end>" (or the
     funcname regex <regex>) within the <file>. You may not give any pathspec
     limiters. This is currently limited to a walk starting from a single revision,
     i.e., you may only give zero or one positive revision arguments. You can
     specify this option more than once.

     <start> and <end> can take one of these forms:

     o   number

         If <start> or <end> is a number, it specifies an absolute line number
         (lines count from 1).

     o   /regex/

         This form will use the first line matching the given POSIX regex. If
         <start> is a regex, it will search from the end of the previous -L range,
         if any, otherwise from the start of file. If <start> is "^/regex/", it
         will search from the start of file. If <end> is a regex, it will search
         starting at the line given by <start>.

     o   +offset or -offset

         This is only valid for <end> and will specify a number of lines before or
         after the line given by <start>.

     If '`:<regex>'' is given in place of <start> and <end>, it denotes the range
     from the first funcname line that matches <regex>, up to the next funcname
     line. `:<regex>'' searches from the end of the previous `-L range, if any,
     otherwise from the start of file. "^:<regex>" searches from the start of file.

特别是对于 magit,目前没有支持,但有一个相关的未解决问题:https://github.com/magit/magit/issues/1717

【讨论】:

    猜你喜欢
    • 2013-03-17
    • 2018-11-01
    • 2012-08-10
    • 2010-12-19
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    相关资源
    最近更新 更多