所以我有一个名为one.txt的文件,我多年来一直在master分支上进行修改。 gitk one.txt将显示该特定文件的完整历史记录。但是在我改变了one.txt =>之后two.txt,gitk two.txt在重命名之前没有显示任何变化。
我尝试了gitk - 关注two.txt,但只给出了每个提交的注释,但没有给出实际的文件更改信息。
我知道我可以执行git log - 关注two.txt,但你必须将每个SHA1值gitk到每个正在更改的内容。
所以提示?
答案 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>
”正常工作会很好,但这不是我非常关心的事情。