gpt4 book ai didi

git - Git 是否将添加/删除视为重命名?

转载 作者:太空狗 更新时间:2023-10-29 12:50:29 24 4
gpt4 key购买 nike

这可能更适合作为 Git 使用的问题跟踪器/论坛中的问题,但我想我会先得到 SO 确认/解释:

我有一个 repo 跟踪一堆安装程序可执行文件。

假设 foo-1.0.exe 已经在 repo 中。

我现在在同一目录中添加 foo-2.0.exe (git add foo-2.0.exe)。接下来,我删除 foo-1.0.exe (git rm foo-1.0.exe)。

我希望 Git 状态显示一个添加的文件和一个删除的文件。相反,我得到这个:


在分行主
要提交的更改:
(使用“git reset HEAD ...”取消暂存)
重命名:foo-1.0.exe -> foo2.0.exe

这对我来说是一个 WTF...Git 是否使用某种启发式猜测 2.0 是对 1.0 的更新...我明白这可能有什么意义,但我不认为我希望它这样做在这种情况下。

最佳答案

您说 Git 使用启发式是正确的。 Git 只跟踪内容,因此存储库只知道以前有一个 foo-1.0.exe,现在有一个 foo-2.0.exe。在您的情况下,git status 使用可用信息猜测 可能已经重命名(加上一些小的更改,您的两个文件可能非常相似)。这个猜测不会影响存储库中记录的内容。

这种只跟踪内容而不跟踪增量的理念允许 Git 不断发展并提供越来越好的工具来浏览存储库历史记录。最终,Git 将提供一种方法,通过重命名、重构或任何其他代码修改,在函数甚至行级别跟踪特定代码的演变。这可以在存储库无需事先存储此信息的情况下完成。

关于git - Git 是否将添加/删除视为重命名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1199508/

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