gpt4 book ai didi

Git 错误地推断出 "rename"

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

当我不希望 Git 这样做时,Git 已经推断出一个“重命名”(这个问题实际上是 opposite ,比如说 How to make git mark a deleted and a new file as a file move? ):

  1. 我创建了一个新文件,并执行了git add。 (我没有执行 git commit,因为我不想在这个阶段这样做。)
  2. 后来我对另一个文件做了git rm
  3. 现在 git status 报告 renamed: old-file -> new-file。我还没有提交

这两个文件在同一目录中,具有相似的名称和一定数量的共同内容。但是,我故意执行git mv,因为这不是重命名,我希望分别跟踪这两个文件。如果我想要重命名,我会做一个 git mv 而不是我故意的 git add/git rm

事件如何导致 git 决定重命名,是否可以告诉它不要尝试推断我不想要的东西?

最佳答案

Git 的逻辑 underlying storage model只存储更改前后的 repo 内容,而不是更改本身。因此它无法区分移动+修改和删除+添加。

因此 git mv 就是 convenience syntax对于:

mv a b
git rm a
git add b

git status 只是推断潜在变化的最可能原因(之前和之后给出),努力使人类可读的输出有用。肯定存在病态的边缘情况 - 在您的特定情况下,推断更改是由移动和小的内容更改引起的。

根据评论讨论更新:如果您需要弄清楚这里发生了什么,您可以(按照您的建议)执行 addrm 在单独的提交中。这有将单个“逻辑”提交分成两个的缺点,尽管这可能并不重要。

关于Git 错误地推断出 "rename",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47281434/

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