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

4

提醒一下,我对git还比较新,主要使用gitgui。

当我更改项目中已经被跟踪的文件夹的名称时,其中包含的已经被跟踪的文件会被git视为新的未跟踪文件。我该如何让git理解我只是更改了文件夹的名称,以便不会“丢失”该文件夹中文件的历史记录?

3个回答

5

Git不关心你的文件或文件夹,它跟踪的是你的内容。当你移动文件后,git状态会显示删除一组文件/文件夹和创建文件/文件夹。在提交后,Git会检测到已经看到了这个确切的内容,并能够按照它管理块的方式来跟踪“文件”和“文件夹”,甚至连你将代码从一个文件移动到另一个文件也能跟踪。

欢迎使用Git!


2

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


1

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

  1. git blame的-CCC选项可以找到已经在文件和版本之间移动的行,并关联正确的责任。
  2. git diff系列、git format-patchgit log的--find-copies-harder选项也说明了同样的问题。相关的是,在向项目发送补丁时,请至少使用-C运行format-patch。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接