【问题标题】:Git looses track of moved files when commits are squashed当提交被压缩时,Git 会丢失对移动文件的跟踪
【发布时间】:2014-05-02 04:24:52
【问题描述】:

我在 2 次提交中移动了很多文件,在每次提交中都会检测到移动。 但是,如果我将这两个提交压缩在一起,则在第二个提交中完成的移动操作被检测为添加和删除。

关于如何解决这个问题的任何想法?

谢谢。

【问题讨论】:

    标签: git git-extensions


    【解决方案1】:

    问题在于 git 总是 将文件移动存储为删除/添加。

    只有稍后 git(或 git 客户端)才会尝试提供帮助并将它们显示为动作。

    见:

    How can I prevent git from thinking I did a rename

    Make git ignore rename

    【讨论】:

      【解决方案2】:

      Git 不跟踪 文件移动。 Git 只跟踪内容。碰巧的是,像git diffgit status 这样的一些命令会识别出一个文件何时被删除,另一个文件何时被添加,并且它们的内容看起来非常相似可能是文件移动而是。

      因此,在您的情况下,Git 的前端能够识别单个提交的动作,但不能识别组合提交的动作。这不会改变下面存储的内容(根本没有移动),而只是一个视觉问题。

      您可以尝试使用 --find-renames 参数的值来让 Git 识别动作,尽管有更多的内容更改。例如,该参数可用于 git show

      【讨论】:

      • 这有点奇怪,因为根本没有内容变化
      猜你喜欢
      • 2020-02-22
      • 2020-11-21
      • 2017-12-30
      • 2012-11-20
      • 1970-01-01
      • 2015-04-21
      • 2015-12-12
      • 2012-08-23
      • 2016-05-02
      相关资源
      最近更新 更多