我认为应该将要重命名的目录复制到具有所需名称的新目录,delete the old directory和git add
,git commit
和push
所有内容。但这是最好的方式吗?
答案 0 :(得分:873)
基本重命名(或移动):
git mv <old name> <new name>
区分大小写的重命名 - 例如。从casesensitive
到CaseSensitive
- 您必须使用两步:
git mv casesensitive tmp
git mv tmp CaseSensitive
(More about case sensitivity in Git…)
...然后是commit和push将是重命名git仓库中目录的最简单方法。
答案 1 :(得分:81)
如果收到此错误:致命:重命名'foldername'失败:参数无效
试试这个:
git mv foldername tempname && git mv tempname folderName
答案 2 :(得分:46)
<强> 1。将文件夹的名称从旧文件夹更改为新文件夹
git mv oldfolder newfolder
<强> 2。如果newfolder已经在您的存储库中您要覆盖它并使用: - 强制
git mv -f oldfolder newfolder
不要忘记将更改添加到索引和&amp;用git mv重命名后提交它们。
第3。在不区分大小写的文件系统上将foldername重命名为folderName
使用普通的mv命令(不是git mv)进行简单重命名不会被git识别为文件更改。如果您使用'git mv'命令尝试它,如下面一行
git mv foldername folderName
如果您使用不区分大小写的文件系统,例如你在Mac上并且没有将它配置为区分大小写,你会遇到类似这样的错误消息:
致命:重命名'foldername'失败:参数无效
以下是您可以做的工作: -
git mv foldername tempname && git mv tempname folderName
这会通过首先将文件夹重命名为完全不同的foldername来拆分重命名过程。将其重命名为不同的foldername后,该文件夹最终可以重命名为新的folderName。在那些'git mv'之后,再次,不要忘记添加和提交更改。虽然这可能不是一种漂亮的技术,但它的工作原理非常好。文件系统仍然无法识别字母大小写的变化,但git会将其重命名为新的foldername,这就是我们想要的全部内容:)
答案 3 :(得分:9)
您可以使用文件系统重命名目录。然后,您可以git rm <old directory>
和git add <new directory>
(Help page)。然后你可以提交并推送。
Git将检测到内容是相同的,并且它只是一个重命名操作,它将在历史记录中显示为重命名条目。您可以在使用git status
答案 4 :(得分:3)
从Web应用程序我认为你不能,但你可以重命名Git Client中的所有文件夹,它会将你的文件移动到新的重命名文件夹中,而不是提交并推送到远程存储库。
我有一个非常类似的问题: 我不得不将不同的文件夹从大写重命名为小写(如Abc - &gt; abc),我用虚拟名称重命名所有文件夹(如'abc___'),然后将其重命名为远程存储库,之后我重命名了所有文件夹使用小写字母(如abc)的原始名称,并采取了它们!
答案 5 :(得分:3)
很多正确答案,但是当我在这里复制并粘贴带有历史记录的文件夹重命名时,我发现 这个
git mv <old name> <new name>
会将旧文件夹(本身)移动到新文件夹
中同时
git mv <old name>/ <new name>
(注意'/') 将嵌套内容从旧文件夹移动到新文件夹
这两个命令都没有沿嵌套文件的历史记录复制。我最终分别重命名了每个嵌套文件夹✔
git mv <old name>/<nest-folder> <new name>/<nest-folder>
答案 6 :(得分:1)
对于区分大小写的重命名,git mv somefolder someFolder
以前为我工作,但由于某种原因,今天没有工作。因此,作为一种解决方法,我创建了一个新文件夹temp
,将somefolder
的所有内容移至temp
,删除了somefolder
,提交了temp
,然后创建了{ {1}},将someFolder
的所有内容移至temp
,删除了someFolder
,提交并推送了temp
,它可以正常工作!在git中显示为someFolder
。
答案 7 :(得分:0)
我分两步解决了。要使用mv命令重命名文件夹,您需要执行此操作的权限,如果没有权限,可以按照以下步骤操作。 假设您要将区分大小写重命名为区分大小写。
步骤1:将文件夹(区分大小写)重命名为资源管理器中的其他名称。 例如重命名对文件夹1区分大小写 提交此更改。
第2步:将此新命名的文件夹(folder1)重命名为预期的区分大小写的名称(区分大小写)。将folder1重命名为区分大小写。 提交更改。
答案 8 :(得分:-3)
git rm -rf --cached path/to/your/directories
然后重新添加并提交。
答案 9 :(得分:-9)
只需重命名该文件夹即可。 git是一个“内容跟踪器”,所以SHA1哈希是相同的,git知道,你重命名它。唯一改变的是树对象。
rm <directory>
git add .
git commit