【问题标题】:Changing subfolder name in git project without losing file history?在不丢失文件历史记录的情况下更改 git 项目中的子文件夹名称?
【发布时间】:2011-03-09 08:23:43
【问题描述】:

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

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

【问题讨论】:

    标签: git git-gui


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      欢迎使用 Git!

      【讨论】:

        【解决方案3】:

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

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

        因此,您不必明确告诉 Git 复制或移动:它会自动检测它们。

        【讨论】:

          猜你喜欢
          • 2016-03-17
          • 2011-05-09
          • 1970-01-01
          • 2012-06-05
          • 2018-07-28
          • 1970-01-01
          • 2020-10-23
          • 2012-08-06
          • 2017-09-15
          相关资源
          最近更新 更多