2010-06-28 86 views
4

仅供参考,我对git很陌生,主要使用gitgui。更改git项目中的子文件夹名称,而不会丢失文件历史记录?

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

回答

6

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

欢迎来到Git!

2

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

1

这里有一些例子表明,Git是一个真正的内容追踪:

  1. 的Git -CCC选项怪可以发现,已经在不同的文件和修订移动线,并正确关联怪。
  2. 的--find - 复制 - 越难git的差异家庭的选择,git的格式补丁git的日志说明了同样的观点。在相关说明中,在向项目发送修补程序时,请使用atleast运行format-patch。

因此,您不必明确告诉Git有关副本或移动:它会自动检测它们。

相关问题