如何在重命名和修改后保留Git中的zip文件历史记录?

时间:2018-06-14 14:00:32

标签: git git-lfs

当我重命名一个zip文件并修改它时,我丢失了文件历史记录。自从Git 将它识别为新文件。我尝试使用--follow和git GUI的git log命令 TortoiseGit或git扩展选项等工具可用于查看文件历史记录 我正在使用Git-lfs来跟踪所有* .zip文件,我也尝试使用textconv 对于zip文件的差异,希望它会有所帮助        我对textconv的配置

   .gitattributes:  
          *.zip filter=lfs diff=zip merge=lfs -text

    .gitconfig file :  
        [diff "zip"]           
            textconv = unzip -c -a  
            binary = true

如何在包含的提交后保留Git中的“result.zip”历史记录 将其重命名为“result_Two.zip”并进行修改?

2 个答案:

答案 0 :(得分:0)

如果重命名文件,无法保留历史记录。

  

重命名是隐式处理而不是显式处理。普通的   对CVS的抱怨是它使用文件名来识别它   修订历史记录,因此如果没有,则无法移动或重命名文件   要么打断历史,要么重命名历史   使历史不准确。大多数CVS后修订控制系统   通过为文件提供一个唯一的长期名称(一种inode来解决这个问题)   数字)幸存重命名。 Git没有记录这样的   标识符,这是一个优势。

确认没有本机方法更改文件名而不丢失其历史记录的内容,Git没有此功能。

解决方案维护历史记录并查找完整历史记录,使用以下命令:

git log --follow ./path/to/file

答案 1 :(得分:0)

进行一次仅重命名zip文件的提交:

git mv foo.zip bar.zip
git commit -s 'rename zip file without any other changes'

然后,进行完全替换内容的提交:

<create new bar.zip>
git add bar.zip
git commit -s 'replace bar.zip contents'

之后,跑步:

git log --follow bar.zip

将以Git通常的倒退方式显示&#34;替换内容&#34;提交,然后&#34;重命名&#34;提交,然后提交影响foo.zip(旧名称)的任何提交。