如何删除Git子模块?
顺便说一句,有什么理由我不能干脆做到
git submodule rm whatever吗?
我想在我的Git超级项目中更改Git子模块的目录名.
假设我的.gitmodules文件中有以下条目:
[submodule ".emacs.d/vimpulse"]
path = .emacs.d/vimpulse
url = git://gitorious.org/vimpulse/vimpulse.git
Run Code Online (Sandbox Code Playgroud)
我必须键入什么来移动.emacs.d/vimpulse目录.emacs.d/vendor/vimpulse而不首先删除它(在这里和这里解释
),然后重新添加它.
Git真的需要子模块标签中的整个路径
[submodule ".emacs.d/vimpulse"]
Run Code Online (Sandbox Code Playgroud)
或者是否也可以只存储子项目的名称?
[submodule "vimpulse"]
Run Code Online (Sandbox Code Playgroud) 我有一个包含几个子模块的仓库。我想添加一些其他的,对我来说最快的方法是使用.gitmodules(在我看来应该明确允许任何类型的子模块管理)。
但是,在编辑此文件并添加子模块时,在git submodule init添加任何内容之后(修改前已经存在的子模块除外)。
是否有任何解决方案可以在不经过的情况下添加子模块git submodule add(即,只需编辑.gitmodules文件然后git submodule update --init)?
也就是说,以下工作流应该自动添加子模块“ foo/bar ”:
Add the following to .gitmodules:
[submodule "foo/bar"]
path = foo/bar
url = https://example.com/foo.git
Run the following command after saving:
git submodule init
git submodule update
Expected result:
submodule 'foo/bar' automatically gets added
it is also updated (the update command)
Run Code Online (Sandbox Code Playgroud) 我正在尝试按照这些说明更改子模块上的遥控器.
修改和保存后.gitmodules,git submodule sync我的子模块没有改变,虽然我的.git/config文件已经更新,以匹配新的远程URL .gitmodules.
我也尝试过git submodule sync --recursive,rm -rf .git/modules/<mySubmodule>按照这个提示做的没有任何区别.事实上,git submodule sync再次运行后一个命令fatal: Not a git repository: ../.git/modules/<mySubmodule>.有小费吗?
我最初git submodule add git://<mySubmodule-url>根据git docs将子模块添加到项目中.
编辑
我甚至通过自制程序更新了git到v2.1.1,仍然没有.我也尝试从头开始,甚至在两个完全不同的子模块之间切换,但我仍然得到相同的结果.总共:
$> mkdir myRepo
$> cd myRepo
myRepo$> git init .
myRepo$> git submodule add https://<path/to/my/repo>.git
myRepo$> vim .gitmodules
# change submodule url to https://<path/to/another/repo>.git
myRepo$> git submodule sync # updates my .git/config …Run Code Online (Sandbox Code Playgroud) 我正在构建一些自定义rpm包,并试图将另一个项目的源包含为要构建的子模块.在我第一次运行期间,我添加了包,当我查看Github页面时,我可以看到显示链接子模块的图标,但它位于错误的位置.
我做了一些更改,将子模块放在我需要的地方(在一个/SOURCES文件夹中)但是当我提交或尝试做任何事情来更新repo时,我没有看到任何表明子模块正在加载到正确位置的东西.
使用submodule update或任何其他相关命令时,我也看不到任何更改.
我应该删除.gitmodules文件并重新开始吗?我担心会产生无法预料的后果.是否有任何命令告诉git检查.gitmodules文件并采取相应的措施?
谢谢你的帮助.