我认为它应该工作,复制目录要重命名到一个新的目录与所需的名称,并删除旧目录,git添加,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 <旧目录>和git add <新目录>(帮助页面)。然后你就可以承诺并推动。
Git会检测到内容是相同的,这只是一个重命名操作,它将作为重命名条目出现在历史记录中。您可以在提交之前使用git状态检查情况是否如此
1. 将一个文件夹的名称从oldfolder改为newfolder
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上,你没有配置它是区分大小写的,你会遇到这样一个错误消息:
fatal:重命名' foldername '失败:无效参数
以下是你可以做的事情,以使它工作:-
git mv foldername tempname && git mv tempname folderName
This splits up the renaming process by renaming the folder at first to a completely different foldername. After renaming it to the different foldername the folder can finally be renamed to the new folderName. After those ‘git mv’s, again, do not forget to add and commit the changes. Though this is probably not a beautiful technique, it works perfectly fine. The filesystem will still not recognize a change of the letter cases, but git does due to renaming it to a new foldername, and that’s all we wanted :)
对于区分大小写的重命名,git mv somefolder somefolder以前为我工作过,但今天由于某种原因没有。所以作为一个解决方案,我创建了一个新文件夹temp,将somefolder的所有内容移动到temp,删除somefolder,提交temp,然后创建somefolder,将temp的所有内容移动到somefolder,删除temp,提交并推送somefolder,它工作了!在git中显示为someFolder。
很多正确答案,但当我登陆这里复制和粘贴一个文件夹重命名历史,我发现 这
git mv <old name> <new name>
是否将旧文件夹(本身)移动到新文件夹中
而
git mv <old name>/ <new name>
(注意'/') 将嵌套内容从旧文件夹移动到新文件夹
这两个命令都没有沿着嵌套文件的历史记录进行复制。我最终重新命名了每个嵌套的文件夹
git mv <old name>/<nest-folder> <new name>/<nest-folder>
推荐文章
- Visual Studio Code无法检测已安装的Git
- 如何在Android工作室添加“libs”文件夹?
- 在Python中提取文件路径(目录)的一部分
- 强制LF eol在git的回购和工作副本
- Crontab -在目录中运行
- Git:在裸库中更改活动分支的正确方法?
- 删除git中的分支是否会将其从历史记录中删除?
- 防止在GitHub上推送到master ?
- 根据Git,谁是“我们”,谁是“他们”?
- git如何合并后樱桃采摘工作?
- Git搜索单个文件历史记录中的字符串
- Git命令显示所有(轻量级)标签创建日期
- Gitignore并没有忽视文件夹
- 什么时候用。git/info/exclude代替。gitignore来排除文件?
- 如何告诉git忽略个别行,即gitignore为特定行代码