协慌网

登录 贡献 社区

在 Git 存储库中,如何正确重命名目录?

我认为将要重命名的目录复制到具有所需名称的新目录,并删除旧目录,然后执行git addgit commitpush一切都应该起作用。但这是最好的方法吗?

答案

基本重命名(或移动):

git mv <old name> <new name>

区分大小写的重命名 - 例如从casesensitiveCaseSensitive —您必须使用两个步骤:

git mv casesensitive tmp
git mv tmp CaseSensitive

有关 Git 区分大小写的更多信息...

… 接着是 commit 和 push 将是在 git repo 中重命名目录的最简单方法。

如果收到此错误:致命:重命名 “文件夹名称” 失败:参数无效

试试这个:

* nixOS 的

git mv foldername tempname && git mv tempname folderName

WinOS 的

git config core.ignorecase false; git mv foldername tempname; git mv tempname folderName

1. 将文件夹的名称从旧文件夹更改为新文件夹

git mv oldfolder newfolder

2. 如果 newfolder 已存在于您的存储库中,并且您想覆盖它并使用: -force

git mv -f oldfolder newfolder

不要忘记将更改添加到索引,并在使用 git mv 重命名后提交更改。

3. 在不区分大小写的文件系统上将 foldername 重命名为 folderName

使用普通的 mv 命令(而不是 git mv)进行简单的重命名不会被识别为来自 git 的文件更改。如果您使用'git mv' 命令尝试,如以下行所示

git mv foldername folderName

如果您使用的是不区分大小写的文件系统(例如,在 Mac 上),并且未将其配置为区分大小写,则会遇到类似以下错误消息:

致命:重命名 “文件夹名” 失败:参数无效

为了使它正常工作,您可以执行以下操作:-

git mv foldername tempname && git mv tempname folderName

通过首先将文件夹重命名为一个完全不同的文件夹名称,这可以将重命名过程分开。将其重命名为不同的 foldername 之后,该文件夹最终可以重命名为新的 folderName。在那些 “git mv” 之后,请不要忘记添加并提交更改。尽管这可能不是一种漂亮的技术,但它可以很好地工作。该文件系统仍然无法识别字母大小写的变化,但是 git 可以将其重命名为新的文件夹名,这就是我们想要的:)