当我使用OS本机命令或GUI移动某些文件时,git会丢失曲目并认为文件已删除并且新文件已创建!使用git mv
命令可以正常工作。但它不支持移动文件夹或外卡(是吗?)
在不遗漏历史记录的情况下重组文件和文件夹的最佳方法是什么?
答案 0 :(得分:0)
Git by design不记录文件重命名,而是在运行时计算文件的历史记录。这样做的结果就是没有“最佳方式”这样的东西。重组文件/文件夹;然而,诚然,由于Git通过比较文件的内容来确定重命名,它确实具有这样的效果:如果你想移动一个文件并修改它的内容,那么最好有一个提交,其中仅包含文件重命名和另一个内容修改提交。
有关Git计算重命名方式的标记,请参阅-C
的{{1}}和-M
选项。
答案 1 :(得分:0)
由于git的协议,我们在git commit
之前移动文件的方式影响不大。提交实际上是所有文件的快照,并且不包含与先前提交的差异。
这意味着我们无法真正追踪"但必须"恢复"移动文件。
一些git命令(也许是GUI)实际上做得很好。这是我用来列出文件更改的git命令,包括移动。
$ git log --follow -- [FILES]