git-submodulelisted
Install: claude install-skill aiskillstore/marketplace
# Git Submodule
## When to use this skill
- Including external Git repositories within your main project
- Managing shared libraries or modules across multiple projects
- Locking external dependencies to specific versions
- Working with monorepo-style architectures with independent components
- Cloning repositories that contain submodules
- Updating submodules to newer versions
- Removing submodules from a project
## Instructions
### Step 1: Understanding submodules
Git submodule is a feature for including other Git repositories within a main Git repository.
**Key concepts**:
- Submodules lock version by referencing a specific commit
- Submodule paths and URLs are recorded in the `.gitmodules` file
- Changes within a submodule are managed as separate commits
### Step 2: Adding submodules
**Basic addition**:
```bash
# Add submodule
git submodule add <repository-url> <path>
# Example: Add library to libs/lib path
git submodule add https://github.com/example/lib.git libs/lib
```
**Track a specific branch**:
```bash
# Add to track a specific branch
git submodule add -b main https://github.com/example/lib.git libs/lib
```
**Commit after adding**:
```bash
git add .gitmodules libs/lib
git commit -m "feat: add lib as submodule"
```
### Step 3: Cloning with submodules
**When cloning fresh**:
```bash
# Method 1: --recursive option when cloning
git clone --recursive <repository-url>
# Method 2: Initialize after cloning
git clone <repository-url>
cd <repository>
git submodul