我认为将要重命名的目录复制到一个具有所需名称的新目录,以及删除旧目录、git add、git commit和push所有内容。但这是最好的方法吗?
git add
git commit
push
您可以使用文件系统重命名目录。然后您可以执行git rm <old directory>和git add <new directory>(帮助页面)。然后您可以提交和推送。
git rm <old directory>
git add <new directory>
Git将检测到内容相同并且它只是一个重命名操作,它将在历史记录中显示为重命名条目。您可以使用git status检查提交之前的情况
git status
基本重命名(或移动):
git mv <old name> <new name>
区分大小写的重命名-例如。从casesensitive到CaseSensitive-您必须使用两步:
casesensitive
CaseSensitive
git mv casesensitive tmpgit mv tmp CaseSensitive
(更多关于Git中的大小写敏感性…)
…然后是提交和推送将是在git存储库中重命名目录的最简单方法。
只需重命名文件夹。git是一个“内容跟踪器”,因此SHA1哈希是相同的,git知道您重命名它。唯一改变的是树对象。
$ rm <directory> // remove the directory$ git add . // add changes to the git$ git commit // commit removed directory
如果您收到此错误:致命:重命名“文件夹名称”失败:无效参数
试试这个:
git mv foldername tempname && git mv tempname folderName
git config core.ignorecase false; git mv foldername tempname; git mv tempname folderName
1.将文件夹名称从旧文件夹更改为新文件夹
git mv oldfolder newfolder
2.如果新文件夹已经在您的存储库中,您想覆盖它并使用:-力
git mv -f oldfolder newfolder
不要忘记将更改添加到索引并在使用git mv重命名后提交它们。
3.在不区分大小写的文件系统上将文件夹名称重命名为文件夹名称
使用普通mv命令(不是git mv)进行简单重命名不会被识别为来自git的文件变化。如果您使用“git mv”命令尝试它,如下所示
git mv foldername folderName
如果您使用的是不区分大小写的文件系统,例如您在Mac上并且没有将其配置为区分大小写,您将遇到像这样的错误消息:
致命:重命名“文件夹名”失败:参数无效
以下是您可以做的事情,以使其工作:
这通过首先将文件夹重命名为完全不同的文件夹名来拆分重命名过程。将其重命名为不同的文件夹名后,文件夹最终可以重命名为新的文件夹名。在那些'git mv'之后,再次,不要忘记添加并提交更改。虽然这可能不是一个漂亮的技术,但它工作得很好。文件系统仍然不会识别字母情况的变化,但git会由于将其重命名为新文件夹名而识别,这就是我们想要的:)
从Web应用程序中,我认为你不能,但你可以重命名Git Client中的所有文件夹,它会将你的文件移动到新的重命名文件夹中,然后提交并推送到远程存储库。
我有一个非常相似的问题:我不得不将不同的文件夹从大写重命名为小写(如abc->abc),我用虚拟名称(如“abc___”)重命名了所有文件夹,然后提交到远程存储库,之后我将所有文件夹重命名为小写的原始名称(如abc),它拿走了它们!
对于区分大小写的重命名,git mv somefolder someFolder以前对我有用,但由于某种原因今天没有。因此,作为一种解决方法,我创建了一个新文件夹temp,将somefolder的所有内容移动到temp,删除somefolder,提交temp,然后创建someFolder,将temp的所有内容移动到someFolder,删除temp,提交并推送someFolder,它起作用了!在git中显示为someFolder。
git mv somefolder someFolder
temp
somefolder
someFolder
有很多正确答案,但当我登陆这里复制粘贴文件夹重命名与历史时,我发现这个
将移动旧文件夹(本身)嵌套在新文件夹中
而
git mv <old name>/ <new name>
(注意“/”)将嵌套内容从旧文件夹移动到新文件夹
这两个命令都没有沿着嵌套文件的历史记录复制。我最终单独重命名每个嵌套文件夹✔
git mv <old name>/<nest-folder> <new name>/<nest-folder>
我尝试使用以下命令,但它不起作用。我收到一个fatal: renaming '...' failed: Invalid argument错误。
fatal: renaming '...' failed: Invalid argument
git mv oldName NewName
然后用以下方法解决:
git rm oldName -r
NewName
提醒一下,除非您提供完整的文件夹路径,否则接受的答案将不起作用。否则,您会得到致命:不良来源错误。
在git中重命名很困难,因为索引必须更改,并且树对象将在提交后创建。我有重命名templestoTemples的问题…我解决了这个问题
下面是重命名目录的示例。
git mv src/dir1/ src/dir2/
如果您收到错误说明Permission Denied,您可以尝试
Permission Denied
git mv src/dir1 src/temp/git mv src/temp src/dir2