如何在Git中查看单个文件的更改历史记录,完整的详细信息?
我有:
git log -- [filename]
Run Code Online (Sandbox Code Playgroud)
它显示了文件的提交历史记录,但是如何获取每个文件更改的内容?
我正试图从MS SourceSafe过渡到过去那么简单right-click→ show history.
曾几何时,我的项目中有一个文件,我现在希望能够获得.
问题是:我不知道何时删除它以及它在哪条路径上.
如何存在此文件的提交?
我在没有考虑的情况下手动移动了一堆文件,并且找不到让git认识到文件只是被移动而不是实际上不同的文件的方法.有没有办法做到这一点,除了删除旧的和添加新的(从而丢失历史),或使用git-mv重做所有更改?
我正在重构一个单文件PHP脚本,以在单独的文件中声明函数和类.如何将一个代码块从一个文件移动到另一个文件,同时保留每个单独行的Git历史记录?我希望能够至少git blame使用代码.与旧版本相比也会有所帮助.
请注意,我对"解决方法"解决方案不感兴趣,这些解决方案需要--follow在代码上使用其他命令或标志(例如)来查看其"旧"历史记录,查看历史记录的人必须知道该文件需要特殊处理.我要寻找其写入必要的元数据的解决方案,使得普通的Git命令,例如blame,log,diff,和这样的"只是工作",而不呈现给他们的其他标志或参数.
我已经阅读了不少 帖子,寻找类似问题的解决方案,但没有解决git blame个别问题的问题.我认为可以解决的一个解决方案是复制文件及其整个历史记录,然后解决这个问题.但是,这个问题仍然没有令人满意的答案.