重新组织文件夹而不丢失文件历史记录

时间:2017-04-19 05:04:34

标签: git mv

当我使用OS本机命令或GUI移动某些文件时,git会丢失曲目并认为文件已删除并且新文件已创建!使用git mv命令可以正常工作。但它不支持移动文件夹或外卡(是吗?)

在不遗漏历史记录的情况下重组文件和文件夹的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

Git by design不记录文件重命名,而是在运行时计算文件的历史记录。这样做的结果就是没有“最佳方式”这样的东西。重组文件/文件夹;然而,诚然,由于Git通过比较文件的内容来确定重命名,它确实具有这样的效果:如果你想移动一个文件修改它的内容,那么最好有一个提交,其中仅包含文件重命名和另一个内容修改提交。

有关Git计算重命名方式的标记,请参阅-C的{​​{1}}和-M选项。

答案 1 :(得分:0)

由于git的协议,我们在git commit之前移动文件的方式影响不大。提交实际上是所有文件的快照,并且不包含与先前提交的差异。

这意味着我们无法真正追踪"但必须"恢复"移动文件。

一些git命令(也许是GUI)实际上做得很好。这是我用来列出文件更改的git命令,包括移动。

$ git log --follow -- [FILES]