所以我有一个名为one.txt的文件,多年来我一直在修改master branch。gitk one.txt将显示该特定文件的整个历史记录。但是,在我更改了1.txt=>2.txt之后,Gitk2.txt在重命名之前不会显示任何更改。
我尝试了gitk--follow two.txt,但只给出了每个提交的注释,而没有给出实际的文件更改信息。
我知道我可以做GitLog——遵循two.txt,但是你必须将每个sha1值Gitk到每个要更改的内容。
有什么建议吗?
最佳答案
根据linux torvalds的说法,问题是gitk --follow
will for now differ from git log --follow
,主要是黑客:
我很肯定我在发布最初的后续补丁时提到了这个确切的问题,它基本上归结为:“--follow
”是一个完全的黑客,不使用常规的提交过滤功能,因此,“--follow
”之类的花哨的东西并不能很好地处理它。
噢,我一点也不确定它是可修复的。”--parent
从根本上说是一件不合法的事情,实际上是一个完全的黑客行为。这是一个相当小的黑客-如果你不知道更好的情况,看看源代码,你可能会认为它非常适合Git。但没有。
现在,有可能我们也可以改装一下--follow
来和--parent
一起工作,但坦率地说,我不知道怎么做。因为黑客实际上可以归结为:
完全不要删减承诺(这是通常简化父母身份并删除无趣承诺的事情)
对于“--follow
中正常提交的整个列表,请使用一个寻找重命名的魔法特殊黑客进行补丁生成。
如果是重命名,请更改我们神奇地跟踪的路径,以便下一次我们看到的提交,我们将遵循新的(旧的)路径。
如果补丁是空的,我们强制隐藏提交(在内部,这是“--follow
”的事情)
这里的关键是我们在队列的末尾做了所有的魔术,在我们完成了通常进行父级重命名的提交的修剪之后很久。
对不起的。我偶尔会使用git log
,但这是一个黑客看到“好,那里它被重命名了”。如果“rev->always_show_header = 0;
”能正常工作就好了,但这不是我非常关心的事情。
关于git - gitk相当于git log - 跟随<文件的完整路径>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6796997/