gpt4 book ai didi

Git:相当于来自 SVN 的修复移动

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

我有时会修改 Java 中的类名。这导致我也需要修改文件名。

为了在 SVN 中维护文件的历史记录,我在 TortoiseSVN 中使用了一个名为 Repair Move 的工具。

在 Check for Modifications View 中,您选择两个文件,一个丢失,一个未版本控制。当您右键单击其中一个时,会出现修复移动的选项。

这将删除 SVN 中的旧文件并添加新文件,同时附加旧文件的历史记录。这样,当你 svn log 时,你可以看到自文件名更改之前的整个历史记录。

git 是否有等效的命令?从我读过的工作流程来看,我似乎应该执行以下操作:

git mv <old filename> <new filename>
# Make the class name changes to reflect the filename change.
git commit -a -m "Changed filename from Foo.java to Bar.java"

这似乎是一个很长的路要走。

我认为一旦手动移动文件并对文件本身进行更改,我就可以使用git mvgit mv 似乎只是 mv 命令的包装器,同时将更改添加到 git。

有没有办法在移动发生后通知 git 移动文件?

最佳答案

事实证明,Git 在处理文件重命名时非常聪明。

当您提交一个已删除的文件和一个新文件时,将比较两个文件的内容是否相似。

如果文件达到某个阈值,提交将自动将添加和删除文件更改为重命名。有时这会在你 git addgit rm 文件后出现,有时在实际提交之后。

因此,例如,当文件名或包名更改时,Java 文件会发生轻微变化。 Git 比较删除的文件和添加的文件的内容,发现它们大部分 相同并将其标记为重命名的文件。

关于Git:相当于来自 SVN 的修复移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13683220/

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