Maison > outils de développement > git > le corps du texte

Comment supprimer un sous-module dans git

WBOY
Libérer: 2023-05-20 15:23:38
original
4195 Les gens l'ont consulté

Git est un outil de contrôle de version largement utilisé dans le développement de logiciels. Parmi eux, le sous-module Git est un mécanisme spécial qui permet à un projet Git d'être utilisé comme sous-répertoire d'un autre projet Git pour réaliser un développement modulaire. Mais parfois, nous devons supprimer un sous-module Git existant. Cet article explique comment supprimer un sous-module dans Git.

1. Introduction aux sous-modules Git

Le sous-module Git est un mécanisme fourni par les outils Git. Il vous permet d'intégrer un autre projet Git dans un projet Git, soit à partir de votre propre base de code, soit à partir de la base de code de quelqu'un d'autre. À l’aide des sous-modules Git, une base de code peut être divisée en plusieurs bases de sous-codes. Cela vous aide à mieux gérer votre code, à y accéder et à l'utiliser rapidement en cas de besoin.

2. Comment utiliser le sous-module Git

Lorsque vous utilisez le sous-module Git, vous devez utiliser la commande suivante pour ajouter un sous-module :

git submodule add 小模块的URL
Copier après la connexion

Après avoir exécuté cette commande, Git ajoutera un sous-répertoire sous le répertoire du projet en cours, et clonez-y le petit module. Un fichier .gitmodules sera également ajouté à ce sous-répertoire, qui contient l'URL du sous-module. .gitmodules文件,其中包含了子模块的URL。

当你进行代码提交时,子模块的内容不会被直接提交,而是会提交一个指向特定的提交版本的指针。

为了更新一个子模块,需要执行以下命令:

git submodule update --init --recursive
Copier après la connexion

这将拉取子模块的最新代码并更新指针。

三、Git中去掉一个子模块

有时候,你不再需要一个子模块,或者你需要将它替换为一个不同的子模块。在这种情况下,你需要从你的代码库中移除一个子模块。下面是一些移除子模块的方法。

1. 移除.gitmodules文件

.gitmodules文件是子模块添加到父Git库时自动创建的。它位于父Git仓库中,包含了子模块的详细信息,如子模块的名称、路径、URL、引用等。

要移除一个子模块,你需要在.gitmodules文件中删除对应子模块的所有记录。同时,你还需要编辑.git/config文件并删除子模块路径的相关配置。如果你删除.git/config中的子模块相关条目,子模块将被删除。

示例:

假设我的父Git库中包含了一个子模块,路径为submodule。要去掉这个子模块,需要执行以下命令:

git rm --cached submodule
rm .gitmodules
Copier après la connexion

这会从.gitmodules文件中删除子模块的相关记录,并从Git索引中删除子模块内容。但实际上对应的子模块目录仍然存在,此时需要手动删除该目录。

2. 删除子模块所在目录

当你从.gitmodules文件中删除一个子模块的信息后,你需要手动删除子模块目录。通常,子模块目录存储在Git库中,需要执行以下命令来删除目录:

rm -rf submodule
Copier après la connexion

3. 使用submodule命令

如果你不想手动删除子模块信息和目录,可能会考虑使用Git命令来完成这个任务。在Git库中,子模块被视为子树,你可以使用git subtree

Lorsque vous validez du code, le contenu du sous-module ne sera pas validé directement, mais un pointeur vers une version validée spécifique sera soumis.

Pour mettre à jour un sous-module, vous devez exécuter la commande suivante :

git submodule add submodule-url
Copier après la connexion

Cela extraira le dernier code du sous-module et mettra à jour le pointeur.

3. Supprimez un sous-module dans Git

Parfois, vous n'avez plus besoin d'un sous-module ou vous devez le remplacer par un autre sous-module. Dans ce cas, vous devez supprimer un sous-module de votre base de code. Voici quelques façons de supprimer des sous-modules.

1. Supprimez les fichiers .gitmodules🎜🎜 Les fichiers .gitmodules sont automatiquement créés lorsque les sous-modules sont ajoutés au référentiel Git parent. Il se trouve dans le référentiel Git parent et contient des informations détaillées sur le sous-module, telles que le nom, le chemin, l'URL, la référence, etc. du sous-module. 🎜🎜Pour supprimer un sous-module, vous devez supprimer tous les enregistrements du sous-module correspondant dans le fichier .gitmodules. Dans le même temps, vous devez également modifier le fichier .git/config et supprimer la configuration associée du chemin du sous-module. Si vous supprimez les entrées liées au sous-module dans .git/config, le sous-module sera supprimé. 🎜🎜Exemple : 🎜🎜Supposons que mon référentiel Git parent contienne un sous-module avec le sous-module path. Pour supprimer ce sous-module, vous devez exécuter la commande suivante : 🎜
git submodule deinit submodule-path
git rm submodule-path
Copier après la connexion
🎜Cela supprimera les enregistrements pertinents du sous-module du fichier .gitmodules et supprimera le contenu du sous-module de l'index Git. Mais en fait, le répertoire du sous-module correspondant existe toujours et le répertoire doit être supprimé manuellement. 🎜🎜2. Supprimez le répertoire où se trouve le sous-module🎜🎜Lorsque vous supprimez les informations d'un sous-module du fichier .gitmodules, vous devez supprimer manuellement le répertoire du sous-module. Habituellement, le répertoire du sous-module est stocké dans le référentiel Git et vous devez exécuter la commande suivante pour supprimer le répertoire : 🎜rrreee🎜3 Utilisez la commande du sous-module 🎜🎜Si vous ne le souhaitez pas. supprimez manuellement les informations et le répertoire du sous-module, vous pouvez envisager d'utiliser les commandes Git pour accomplir cette tâche. Dans un référentiel Git, un sous-module est considéré comme un sous-arbre et vous pouvez le supprimer à l'aide de la commande git subtree. 🎜🎜Tout d'abord, ajoutez le sous-module au référentiel Git à l'aide de la commande suivante : 🎜rrreee🎜Ensuite, supprimez le sous-module du référentiel Git à l'aide de la commande suivante : 🎜rrreee🎜Cette commande supprimera le répertoire du sous-module et le supprimera du Git parent. référentiel Supprimer les informations pertinentes de l'entrepôt. 🎜🎜4. Résumé🎜🎜Supprimer un sous-module Git n'est pas une affaire compliquée. Vous pouvez utiliser l'une des méthodes ci-dessus pour le supprimer. Cependant, avant de supprimer un sous-module, vous devez comprendre l'impact de la suppression et sauvegarder votre code avant d'effectuer l'opération. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal