是否有一些简单的方法来重命名git子模块目录(而不是从头到脚删除它,然后用新的目标名称重新添加它)。
当我们在它的时候,为什么我不能在父目录中做以下事情:git mv old-submodule-name new-submodule-name
是否有一些简单的方法来重命名git子模块目录(而不是从头到脚删除它,然后用新的目标名称重新添加它)。
当我们在它的时候,为什么我不能在父目录中做以下事情:git mv old-submodule-name new-submodule-name
当前回答
编辑.gitmodules文件重命名子模块,然后重命名子模块目录。
我认为你可能需要做一个git子模块同步之后,但我现在不在一个位置检查。
其他回答
不能重命名它,所以你必须先删除它(deinit),然后再添加它。
所以在移除它之后:
git submodule deinit <path>
git rm --cached <path>
你也可以仔细检查并删除对它的引用:
.gitmodules . /配置 从.git/modules/<name>中删除引用文件夹(最好做备份),因为每个文件夹都有配置文件,其中保存了对其工作树的引用
然后通过将任何更改提交到您的repo来进行更改:
git commit -am 'Removing submodule.'
并且通过以下方法再次检查是否有任何未解决的问题:
git submodule update
git submodule sync
git submodule status
所以现在你可以再次添加git子模块:
git submodule add --name <custom_name> git@github.com:foo/bar.git <my/path>
MacOs:当我想使用VonC解决方案将子模块文件夹Common改为小写时:
git mv Common common
我得到
fatal:重命名“Common”失败:无效参数
解决方案-使用临时文件夹名并移动两次:
git mv Common commontemp
git mv commontemp common
这就是全部:)
我发现以下工作流程:
.gitmodules最新消息 接近新手机 得一个人去 晚上好,夫人 什么
注意:这种方法不会在2018年版本的GIT中正确更新索引和. GIT模块。
注意:你现在可以只执行git mv oldpath newpath,就像VonC的回答中指出的那样。(确保您使用的是最新版本的git)
编辑.gitmodules文件重命名子模块,然后重命名子模块目录。
我认为你可能需要做一个git子模块同步之后,但我现在不在一个位置检查。
我只是尝试了上面建议的一些。我运行:
$ git --version
git version 1.8.4
我发现最好是去初始化子模块,删除目录并创建一个新的子模块。
git submodule deinit <submodule name>
git rm <submodule folder name>
git submodule add <address to remote git repo> <new folder name>
至少这对我来说是最有效的。YMMV !