gpt4 book ai didi

Git:大规模重构保持更改日志

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

是否可以在不丢失 Git 更改跟踪的情况下进行涉及移动和重命名许多目录的大规模重构?

最佳答案

git 可以很好地处理移动/重命名目录,但是要跟踪这些重命名的变化,您可能需要向您使用的任何命令添加一些额外的参数,或者设置几个配置选项。

这样做的原因是 git 只存储每次提交时树的状态,而不是为了从一种状态移动到另一种状态而发生的更改。如果您的源代码树中有很多文件,那么您可能需要告诉 git 主动尝试查找任何重命名的文件。同样,如果您对特定文件感兴趣,则需要明确告诉 git 搜索其过去可能的重命名。

举一个后者的例子,一个典型的例子是使用 git log -- filename 检查特定文件的历史。为了告诉 git 在可能发生的任何重命名之前也查找它的历史,你必须这样做:

git log --follow -- filename

另一个例子,如果树中有很多文件,git log --stat 的有用输出可能不包括所有重命名或副本,因为它需要检查所有文件对要做到这一点。要在使用 git loggit diff 时强制 git 检测副本和重命名,您可以将配置选项 diff.renameLimit 至少设置为数字树中的文件,并将配置选项 diff.renames 设置为 copies - 这意味着检测副本 重命名。

或者,如果您不想将这些设置为配置选项,您可以使用 -M-C 选项到 git loggit diff。这些在 Jakub Narębski 对这个问题的回答中有更详细的描述:

关于Git:大规模重构保持更改日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5271034/

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