在git中,如何删除和重命名文件,从某个分支中的某个提交开始,同时保留每个文件(删除和重命名)的更改历史记录?如何删除历史记录中的删除和重命名?
我的用例是我带了一个分支,并从那里开始一个新的分支,我删除了一些文件并重新命名了一些其他分支。然后我修改了其余的(并且经常重命名的)文件(还添加了一些文件)。现在我想恢复到原来的名称并恢复已删除的文件(这些文件仍然存在于公共基础上),同时保留所有内容的历史记录。我的最终目标是能够合并回原始分支(所以without the renames and file deletions that I introduced)。
可以这样做吗?我想知道这是多么容易,尤其是因为重命名的文件被修改(如此天真地删除重命名将切断原始文件和修改之间的历史链接,我反而想保留)...
PS:变化因为分支分支很广泛(至少在“清洁”分支上)。
Git不会跟踪文件名的历史。这是一个内容跟踪器;它会在运行时计算来自deltas的文件名更改。 –
“*由于重命名的文件被修改得如此天真,删除重命名将切断原始文件和修改之间的历史链接*”这不一定是真的。 Git甚至可以通过文件修改来计算重命名。此外,如果您使用正常提交将文件重命名为原始名称,您的分支应该合并正常。 – Schwern