目前删除git子模块的方式是什么? [英] What is the current way to remove a git submodule?

查看:279
本文介绍了目前删除git子模块的方式是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

作为Git版本1.9.3(Apple Git-50)在Mac上我如何删除Git子模块?我正在阅读许多过时的信息,许多开发者告诉我他们不会工作。目前的方式是什么?
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 and git 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆