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

时间:2010-06-28 21:18:09

标签: git git-gui

仅供参考,我对git很新,主要使用gitgui。

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

3 个答案:

答案 0 :(得分:5)

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

欢迎来到Git!

答案 1 :(得分:2)

Git没有明确跟踪移动/重命名或复制。相反,它会在被要求时检测到它们。移动,然后运行git diff -M

答案 2 :(得分:1)

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

  1. git blame 的-CCC选项可以查找已经跨文件和修订移动的行,并关联正确的指责。
  2. git diff 系列的--find-copies-harder选项, git format-patch git log 说明了相同的内容点。在相关的说明中,在向项目发送补丁时,请使用至少-C运行format-patch。
  3. 因此,您无需明确告知Git有关副本或移动的信息:它会自动检测它们。