我认为将要重命名的目录复制到具有所需名称的新目录,以及 delete the old directory、git add
、git commit
和 push
一切都应该有效。但这是最好的方法吗?
基本重命名(或移动):
git mv <old name> <new name>
区分大小写的重命名 - 例如。从 casesensitive
到 CaseSensitive
- 您必须使用两步:
git mv casesensitive tmp
git mv tmp CaseSensitive
(More about case sensitivity in Git…)
…其次是提交和推送将是在 git repo 中重命名目录的最简单方法。
如果您收到此错误:致命:重命名“文件夹名”失败:参数无效
尝试这个:
*尼克斯操作系统
git mv foldername tempname && git mv tempname folderName
操作系统
git config core.ignorecase false; git mv foldername tempname; git mv tempname folderName
git mv foldername tempname
和 git mv tempname folderName
,它们应该可以在 Windows 上运行。
1.将文件夹的名称从旧文件夹更改为新文件夹
git mv oldfolder newfolder
2. 如果 newfolder 已经在您的存储库中并且您想覆盖它并使用:- 强制
git mv -f oldfolder newfolder
不要忘记将更改添加到索引并在使用 git mv 重命名后提交它们。
3. 在不区分大小写的文件系统上将文件夹名重命名为文件夹名
使用普通 mv 命令(不是 git mv)进行简单重命名不会被识别为来自 git 的文件更改。如果您尝试使用 'git mv' 命令,如下行所示
git mv foldername folderName
如果您使用的是不区分大小写的文件系统,例如您在 Mac 上并且没有将其配置为区分大小写,您将遇到如下错误消息:
致命:重命名“文件夹名”失败:参数无效
为了使它发挥作用,您可以采取以下措施:-
git mv foldername tempname && git mv tempname folderName
这通过首先将文件夹重命名为完全不同的文件夹名称来拆分重命名过程。将其重命名为不同的文件夹名称后,该文件夹最终可以重命名为新的文件夹名称。在那些 'git mv' 之后,不要忘记添加并提交更改。虽然这可能不是一个漂亮的技术,但它工作得非常好。文件系统仍然无法识别字母大小写的变化,但是由于将其重命名为新的文件夹名称,git 确实如此,这就是我们想要的 :)
您可以使用文件系统重命名目录。然后您可以执行 git rm <old directory>
和 git add <new directory>
(Help page)。然后你可以提交和推送。
Git 会检测到内容相同,只是重命名操作,会在历史记录中显示为重命名条目。您可以使用 git status
在提交之前检查是否是这种情况
很多正确的答案,但是当我登陆这里复制并粘贴带有历史记录的文件夹重命名时,我发现这个
git mv <old name> <new name>
将旧文件夹(本身)移动到新文件夹中
尽管
git mv <old name>/ <new name>
(注意'/')会将嵌套内容从旧文件夹移动到新文件夹
这两个命令都没有复制嵌套文件的历史记录。我最终分别重命名了每个嵌套文件夹✔
git mv <old name>/<nest-folder> <new name>/<nest-folder>
从 Web 应用程序我认为你不能,但你可以重命名 Git 客户端中的所有文件夹,它会将你的文件移动到新重命名的文件夹中,而不是提交并推送到远程存储库。
我有一个非常相似的问题:我不得不将不同的文件夹从大写重命名为小写(如 Abc -> abc),我用虚拟名称(如“abc___”)重命名了所有文件夹,然后提交到远程存储库,之后我将所有文件夹重命名为带有小写字母的原始名称(如 abc),然后它们就被占用了!
对于区分大小写的重命名,git mv somefolder someFolder
以前对我有用,但由于某种原因今天没有。因此,作为一种解决方法,我创建了一个新文件夹 temp
,将 somefolder
的所有内容移动到 temp
,删除 somefolder
,提交 temp
,然后创建 someFolder
,移动 temp
的所有内容} 到 someFolder
,删除 temp
,提交并推送 someFolder
,它工作!在 git 中显示为 someFolder
。
我尝试使用以下命令,但没有成功。我收到 fatal: renaming '...' failed: Invalid argument
错误。
git mv oldName NewName
然后用下面的方法解决:
首先我复制我想重命名的文件夹然后我运行以下命令来删除文件夹
git rm oldName -r
将重复的文件夹重命名为 NewName
请注意,除非您提供完整的文件夹路径,否则接受的答案将不起作用。否则,你会得到致命的:坏源错误。
只需重命名文件夹。 git 是一个“内容跟踪器”,所以 SHA1 哈希是相同的,git 知道,你重命名它。唯一改变的是树对象。
$ rm <directory> // remove the directory
$ git add . // add changes to the git
$ git commit // commit removed directory
不定期副业成功案例分享
casesensitive
重命名为CaseSensitive
,您可以这样做:git mv casesensitive Temp
然后git mv Temp CaseSensitive
git rm -rf --cached path/to/your/directories
然后重新添加并提交git config core.ignorecase false
,然后连续运行命令,否则,对于第二部分,我会收到source is empty
错误。