gpt4 book ai didi

eclipse - 为什么在 Eclipse 中执行移动重构后我的 git 文件历史丢失了?

转载 作者:太空狗 更新时间:2023-10-29 13:10:26 25 4
gpt4 key购买 nike

我在 eclipse 中执行了几次重构,我将大量文件移动到另一个 java 包。这些通常会导致大量文件被自动更新以解析引用。因此,这些情况下的提交往往非常大。

我假设 git 跟踪重命名并且我可以使用 git log --follow 通过重命名跟踪历史记录,但 git 没有跟踪重命名。

我在 eclipse 中执行了较小的重构操作,其中在提交时检测到重命名。唯一的区别似乎是提交的大小。

有什么想法吗?

最佳答案

Git 根本不跟踪历史中的重命名,但是 git log 可以根据提交内容启发式地检测重命名。

  • 您可能需要为 git log 指定一个较低的 -M 百分比,以便检测重命名。如果超过某个百分比的文件已更改,git log(和 git diff)不会将添加/删除对视为重命名。如果移动的文件非常小并且需要更改内容(例如更改包名称),则它们可能会超过此阈值。
  • 您可能还需要为 -l 指定一个值,它指定要评估的潜在重命名的最大数量。在大型提交中,您很可能会超过此值,因此 Git 不会评估重命名以防止日志操作花费太长时间。 (检测重命名是一个 O(n^2) 操作,其中 n 是需要考虑的添加/删除对的数量,因此在日志操作中处理每个提交以查找重命名所花费的时间会随着数量的增加而呈指数增长添加/删除排列。)

有关这些选项的更多详细说明,请参阅 git-log 联机帮助页。

关于eclipse - 为什么在 Eclipse 中执行移动重构后我的 git 文件历史丢失了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12735110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com