我认为将要重命名的目录复制到一个新目录,然后删除旧目录,并使用git add
、git commit
和push
命令来操作应该可以实现。但这是最好的方式吗?
基本重命名(或移动):
git mv <old name> <new name>
大小写敏感的重命名,例如从casesensitive
改为CaseSensitive
,需要进行两步操作:
git mv casesensitive tmp
git mv tmp CaseSensitive
紧接着提交并推送是在Git存储库中重命名目录的最简单方法。
casesensitive
重命名为CaseSensitive
,可以这样做:`git mv casesensitive Temp` 然后
`git mv Temp CaseSensitive`
- ViliusKgit rm -rf --cached path/to/your/directories
,然后重新添加并提交。 - dtothefpgit config core.ignorecase false
,然后按顺序运行命令,否则在第二部分中我会收到“源为空”的错误提示。 - Hosseingit mv foldername tempname && git mv tempname folderName
WinOS:
git config core.ignorecase false; git mv foldername tempname; git mv tempname folderName
git mv foldername tempname
和 git mv tempname folderName
,这应该在Windows上可以工作。 - Larkeith1. 将文件夹的名称从oldfolder更改为newfolder
git mv oldfolder newfolder
2. 如果newfolder已经存在于你的代码库中,且你想要覆盖它并使用:- force
git mv -f oldfolder newfolder
重命名文件夹时,如果目标系统是大小写不敏感的系统,使用普通的mv命令(而不是git mv)进行简单重命名不会被Git识别为文件更改。在重命名时,请使用‘git mv’命令,按如下方式执行操作:
不要忘记在重命名后将更改添加到索引中并提交。
git mv foldername folderName
如果你正在使用不区分大小写的文件系统(例如,你使用的是Mac电脑并且没有将它配置为区分大小写),那么你会遇到以下类似的错误信息:
fatal: 重命名 'foldername' 失败:无效参数
为了解决这个问题,你可以执行以下操作:
git mv foldername tempname && git mv tempname folderName
这种方法将重命名过程分为两步,首先将文件夹重命名为完全不同的文件夹名称。在将其重命名为不同的文件夹名称之后,最终可以将该文件夹重命名为新的文件夹名称。在那些“git mv”之后,不要忘记添加和提交更改。虽然这可能不是一种很好看的技术,但它完美地运行。虽然文件系统仍然无法识别字母大小写的更改,但由于将其重命名为新的文件夹名称,git会识别到,这就是我们想要的 :)
有许多正确的答案,但当我来到这里复制并粘贴一个带历史记录的文件夹重命名时,我发现了这个。
git mv <old name> <new name>
将 旧文件夹(它本身)移动到 新文件夹 中嵌套。
同时
git mv <old name>/ <new name>
注意'/'会将嵌套的内容从旧文件夹移动到新文件夹
两个命令都没有复制嵌套文件的历史记录。我最终逐个重命名了每个嵌套文件夹✔
git mv <old name>/<nest-folder> <new name>/<nest-folder>
git rm <old directory>
和git add <new directory>
(帮助页面)。 然后,您可以提交并推送更改。Git将检测到内容相同且只是一个重命名操作,并将其显示为历史记录中的重命名条目。在提交之前,您可以使用git status
命令检查是否是这种情况。以下是重命名目录的示例。
git mv src/dir1/ src/dir2/
git mv src/dir1 src/temp/
git mv src/temp src/dir2
我认为从 Web 应用程序中你不能这样做,但是你可以在 Git 客户端中重命名所有文件夹,它会将你的文件移动到新的重命名的文件夹中,然后提交并推送到远程仓库。
我曾经遇到过一个非常相似的问题: 我需要将不同的文件夹从大写字母改成小写字母(例如Abc -> abc),我使用一个虚拟名称(例如“abc___”)重命名了所有文件夹,然后提交到远程仓库,之后我将所有文件夹重新命名为原始的小写字母名称(例如abc),它们就被接受了!
对于区分大小写的重命名,以前我使用git mv somefolder someFolder
成功过,但今天由于某些原因无法使用。因此,我创建了一个新文件夹temp
,将somefolder
的所有内容移动到temp
中,删除somefolder
,提交temp
,然后创建someFolder
,将temp
中的所有内容移动到someFolder
中,删除temp
,提交并推送someFolder
,这样就可以成功了!在git中显示为someFolder
。
git mv oldName NewName
然后使用以下方法解决:
git rm oldName -r
NewName
简单技巧
您只需要将目录重命名为任何临时名称,然后再次重命名即可使其正常工作。