目前删除git子模块的方式是什么? [英] What is the current way to remove a git submodule?
问题描述
将
git deinit pathToSubModule
执行该操作吗? 我认为这样做的步骤是这里,但评论说他们不会。
让我解释一下我目前的情况以及我需要完成的事情。我已经安装了快速存储库并将其添加到我的子模块中项目。此代码已经签入,其他人正在使用它。我现在需要做的是将叉放在同一个快速存储库中,并将其托管在我的公司更安全的github上(因此完全是其他私人github)。分叉后,我想将该fork添加为gitSubmodule,并让它替换之前安装的当前Quick子模块。
更新:我读过以下是关于最新git版本的正确方法,请确认?
删除使用以下内容添加的子模块:
git子模块add blah@blah.com:repos / blah.git lib / blah
运行:
git rm lib / blah
就是这样。
对于旧版本的git(大约〜1.8.5),使用:
git submodule deinit lib / blah
git rm lib / blah
git config -f .gitmodules --remove-section submodule.lib / blah
你有 git submodule deinit
git submodule deinit < asubmodule>
git rm< asubmodule>
#注意:asubmodule(无尾随斜线)
#或者,如果你想把它留在工作树中
git rm --cached< asubmodule>
rm -rf .git / modules /< asubmodule>
deinit
取消注册给定的子模块,即从
.git / config
子模块$ name
部分>与他们的工作树一起。
进一步调用
git子模块更新
,git submodule foreach
和git submodule sync
会跳过所有未注册的子模块,直到它们再次初始化为止,所以如果您不想拥有本地再次检查工作树中的子模块。
如果您确实想从存储库中删除子模块并提交使用
git rm
代替。
如果指定
- force
,子模块的工作树即使包含本地修改也将被删除。
as of git version 1.9.3 (Apple Git-50) on mac how do i remove a git submodule? I am reading alot of outdated information with many developers telling me they wont work. What is the current way ?
will git deinit pathToSubModule
do the trick ?
The steps i thought would work are here but comments say they wont.
Let me explain my current situation and what i need accomplished. I've installed the Quick repository and added it to as submodule to my project. This code is already checked in and others are using it. What i now need to do is fork the same Quick repository and host it on a more secure github that my company has (so a completely other private github). After forking it i want to add that fork as a gitSubmodule and let it replace the current Quick submodule i had installed previously.
update: i've read that the following is the correct way on latest git version please confirm?
To remove a submodule added using:
git submodule add blah@blah.com:repos/blah.git lib/blah
Run:
git rm lib/blah
That's it.
For old versions of git (circa ~1.8.5) use:
git submodule deinit lib/blah
git rm lib/blah
git config -f .gitmodules --remove-section submodule.lib/blah
You have the git submodule deinit
git submodule deinit <asubmodule>
git rm <asubmodule>
# Note: asubmodule (no trailing slash)
# or, if you want to leave it in your working tree
git rm --cached <asubmodule>
rm -rf .git/modules/<asubmodule>
deinit
Un-register the given submodules, i.e. remove the whole
submodule.$name
section from.git/config
together with their work tree.Further calls to
git submodule update
,git submodule foreach
andgit submodule sync
will skip any unregistered submodules until they are initialized again, so use this command if you don’t want to have a local checkout of the submodule in your work tree anymore.If you really want to remove a submodule from the repository and commit that use
git rm
instead.If
--force
is specified, the submodule’s work tree will be removed even if it contains local modifications.
这篇关于目前删除git子模块的方式是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!