4

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

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

4

3 回答 3

5

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

欢迎来到 Git!

于 2010-06-28T21:50:37.357 回答
2

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

于 2010-06-28T21:24:26.840 回答
1

这里有一些例子表明 Git 确实是一个内容跟踪器:

  1. git blame的 -CCC 选项可以找到已跨文件和修订移动的行,并关联正确的责备。
  2. git diff系列、git format-patchgit log的 --find-copies-harder 选项说明了同一点。在相关说明中,将补丁发送到项目时,请使用 atleast -C 运行 format-patch。

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

于 2010-06-29T12:55:46.873 回答