我正在重构一个单文件PHP脚本,将函数和类声明为不同的文件。如何将一段代码块从一个文件移动到另一个文件,同时保留每个单独行的Git历史记录? 我希望能够至少使用
请注意,我不感兴趣的“解决方法”需要在代码上使用附加命令或标志(例如
我已经阅读了相当多的帖子,寻找解决类似问题的方法,但没有一个解决
git blame
查看代码。比较旧版本也会很有帮助。请注意,我不感兴趣的“解决方法”需要在代码上使用附加命令或标志(例如
--follow
)来查看其“旧”的历史记录,这需要查看历史记录的人知道该文件需要特殊处理。我正在寻找一种解决方案,可以编写必要的元数据,使得诸如blame
、log
、diff
等常规git命令“正常工作”,而不需要向它们提供附加标志或参数。我已经阅读了相当多的帖子,寻找解决类似问题的方法,但没有一个解决
git blame
单独行的问题。我认为一个可行的解决方案是复制文件及其整个历史记录,然后在此基础上工作。然而,这个问题仍然没有一个令人满意的答案。
git blame
已经跟踪了文件中的代码行,但是除非文件被重命名,否则您仍然需要传递其他选项来告诉 Git 进行移动/复制检测,可能是因为这是一个昂贵的操作。 - user456814git blame
将显示我编写了该代码块。我正在寻找一种解决方案,可以让我移动代码,但仍应显示Stas编写的时间和内容。 - dotancohengit blame
文档,看它是否已经实现了你所需要的功能? - user456814-C
可能是您想要的(我已删除我的答案,因为虽然从技术上讲 git 不会跟踪此内容,但在实践中,-C
可能已经足够满足您的需求了)。 - andrew cooke--follow
和-C1
,但我真的在寻找一种解决方案,可以“重写”文件历史记录,以添加原始函数作者的信息到新位置。 - dotancohen