gitk相当于git log --follow <full path =“”to =“”file =“”> </full>

时间:2011-07-22 23:00:43

标签: git gitk source-control-explorer

所以我有一个名为one.txt的文件,我多年来一直在master分支上进行修改。 gitk one.txt将显示该特定文件的完整历史记录。但是在我改变了one.txt =&gt;之后two.txt,gitk two.txt在重命名之前没有显示任何变化。

我尝试了gitk - 关注two.txt,但只给出了每个提交的注释,但没有给出实际的文件更改信息。

我知道我可以执行git log - 关注two.txt,但你必须将每个SHA1值gitk到每个正在更改的内容。

所以提示?

1 个答案:

答案 0 :(得分:27)

问题是gitk --follow will for now differ from git log --follow,考虑到,根据Linux Torvalds,--follow主要是黑客攻击:

  

我很确定当我发布原始的关注补丁时,我提到了这个确切的问题,它基本归结为:“--follow”是完全黑客攻击,并且使用常规提交过滤功能,因此,像“--parent”这样的花哨的东西并不适用于它。

     

以下,我完全不确定它是否可以修复。 “--follow是一个非常根本性的非常好的事情,而且真的是一个完整的黑客。这是一个相当黑客 - 如果你不知道更好并查看源代码,你可能会认为它很适合git。但不是。

     

现在,我们可能会匆匆--parent--follow合作,但坦率地说,我不知道怎么做。因为--follow黑客真的基本归结为:

     
      
  • 根本不执行 修剪提交(这通常会简化父母身份并删除无趣的提交)      
        
    • 对于“git log”中的正常提交的完整列表,使用寻找重命名的魔法特殊黑客进行补丁生成。
    •   
  •   
  • 如果是重命名,请更改我们神奇地跟踪的路径,以便我们查看下一个提交,我们将遵循新的(较旧的)路径。
  •   
  • 如果补丁是空的,我们强制隐藏提交(在内部,这是“rev->always_show_header = 0;”的事情)
  •   
     

这里的关键是我们在队列的 end 完成了所有的魔法,很久之后我们完成了对通常进行父母身份重命名的提交的修剪。

     

对不起。我偶尔会使用--follow,但看到“确定,它已重命名”是一个黑客攻击。如果“gitk --follow <pathname>”正常工作会很好,但这不是我非常关心的事情。