我认为它应该工作,复制目录要重命名到一个新的目录与所需的名称,并删除旧目录,git添加,git提交和推一切。但这是最好的方法吗?


当前回答

对于区分大小写的重命名,git mv somefolder somefolder以前为我工作过,但今天由于某种原因没有。所以作为一个解决方案,我创建了一个新文件夹temp,将somefolder的所有内容移动到temp,删除somefolder,提交temp,然后创建somefolder,将temp的所有内容移动到somefolder,删除temp,提交并推送somefolder,它工作了!在git中显示为someFolder。

其他回答

从Web应用程序我认为你不能,但是你可以重命名Git客户端的所有文件夹,它会把你的文件移动到新重命名的文件夹中,然后提交和推送到远程存储库。

我也遇到过类似的问题: 我不得不重命名不同的文件夹从大写到小写(像Abc -> Abc),我已经重命名了所有的文件夹与一个假的名字(像'abc___'),然后提交到远程存储库,之后我重命名所有的文件夹与小写的原始名称(像Abc),它采取了他们!

在git中重命名是困难的,因为索引必须改变,并且树对象将在提交后创建。 我有重命名模板为模板的问题… 我用……解决了这个问题

copying Templates to templates in bash [cp -r Templates templates ] (git mv Templates templates will not work) removing Templates in bash [rm -r Templates ](check that the copying was successful first) Removing the Templates file from the index[use "git ls-files -s" to see the index, "git rm " you can use wildcards such as git rm Templates/*, continue checking the index] Adding the renamed paths to the index ("git add -v ." and check the result with "git ls-files -s" Commit ["git commit -m "renaming ... " If you have remotes git push <to wherever origin,

很多正确答案,但当我登陆这里复制和粘贴一个文件夹重命名历史,我发现 这

git mv <old name> <new name>

是否将旧文件夹(本身)移动到新文件夹中

git mv <old name>/ <new name>

(注意'/') 将嵌套内容从旧文件夹移动到新文件夹

这两个命令都没有沿着嵌套文件的历史记录进行复制。我最终重新命名了每个嵌套的文件夹

git mv <old name>/<nest-folder> <new name>/<nest-folder>

对于区分大小写的重命名,git mv somefolder somefolder以前为我工作过,但今天由于某种原因没有。所以作为一个解决方案,我创建了一个新文件夹temp,将somefolder的所有内容移动到temp,删除somefolder,提交temp,然后创建somefolder,将temp的所有内容移动到somefolder,删除temp,提交并推送somefolder,它工作了!在git中显示为someFolder。

只需重命名文件夹。git是一个“内容跟踪器”,所以SHA1哈希值是相同的,git知道,你重命名它。唯一改变的是树对象。

$ rm <directory> // remove the directory
$ git add . // add changes to the git
$ git commit // commit removed directory