在git项目中更改子文件夹名称而不丢失文件历史记录?

在git项目中更改子文件夹名称而不丢失文件历史记录?,git,git-gui,Git,Git Gui,仅供参考,我对git非常陌生,主要使用gitgui 当我更改包含项目中已跟踪文件的已跟踪文件夹的名称时,git会将文件夹中的所有文件视为新的未跟踪文件。如何让git理解我只更改了文件夹的名称,这样我就不会“丢失”该文件夹中包含的文件的历史记录?git不会显式跟踪移动/重命名或复制。相反,它会在被要求时检测到它们。执行移动,然后运行git diff-M Git不关心您的文件或文件夹。我说对了。它跟踪你的内容。移动文件后,它将以git状态显示为删除一组文件/文件夹和创建文件/文件夹。提交后,Git将

仅供参考,我对git非常陌生,主要使用gitgui


当我更改包含项目中已跟踪文件的已跟踪文件夹的名称时,git会将文件夹中的所有文件视为新的未跟踪文件。如何让git理解我只更改了文件夹的名称,这样我就不会“丢失”该文件夹中包含的文件的历史记录?

git不会显式跟踪移动/重命名或复制。相反,它会在被要求时检测到它们。执行移动,然后运行
git diff-M

Git不关心您的文件或文件夹。我说对了。它跟踪你的内容。移动文件后,它将以git状态显示为删除一组文件/文件夹和创建文件/文件夹。提交后,Git将检测到它已经看到了这些确切的内容,并且不仅能够跟踪“文件”和“文件夹”,而且即使您通过它管理块的方式将代码从一个文件移动到另一个文件


欢迎来到Git

以下是一些例子,说明Git确实是一个内容跟踪器:

  • git-gull的-CCC选项可以找到跨文件和修订移动的行,并将正确的错误关联起来
  • git diff系列的--find copies harder选项、git格式补丁和git日志也说明了这一点。请注意,在向项目发送修补程序时,请至少使用-C运行格式化修补程序
  • 因此,您不必显式地告诉Git关于拷贝或移动的信息:它会自动检测它们