GitKraken Desktop Documentation

Manage Git Submodules in GitKraken Desktop

Last updated: January 2026

Submodules allow you to include another Git repository inside a parent repository. Use submodules to incorporate independent projects while maintaining separate commit histories.


Enable the Submodules Pane

To toggle the Submodules pane:

  1. Right-click any pane header in the Left Panel.
  2. Check or uncheck “Submodules” to show or hide the pane.
GitKraken Desktop Left Panel showing the toggle pane menu with options to show or hide sections like Remote, Pull Requests, Tags, and Submodules
Toggle the Submodules pane from the Left Panel

Add a Submodule

To add a submodule:

  1. Hover over Submodules in the Left Panel.
  2. Click the icon.
  3. Paste the HTTPS or SSH repository URL.
  4. Enter the desired path.
GitKraken Desktop interface showing the Add Submodule modal with fields for Remote URL and Name/Path, and a green Add Submodule button
Add a submodule using HTTPS or SSH URL

Adding a submodule updates the .gitmodules file and references the submodule commit.

When cloning the parent repository, you’ll be prompted to initialize the submodule to fetch and checkout its commit.


Update a Submodule

To update a submodule:

  1. Open the Submodules pane.
  2. Right-click the submodule.
  3. Select Update to fetch the latest commit.
Context menu in GitKraken Desktop showing options to update, edit, open, or delete the submodule vendor/libgit2
Update a submodule from the Left Panel

When cloning a repository that includes submodules, GitKraken prompts you to initialize them.


Change the Pointer Commit

To update the tracked commit:

  1. Open the submodule in GitKraken Desktop.
  2. Check out a new commit or branch.
  3. Exit the submodule to return to the parent repo.

GitKraken Desktop will prompt you to save the updated pointer commit.

GitKraken Desktop interface showing submodule vendor/libgit2 out-of-sync, with options to commit or discard changes, and view or delete the submodule
Update the pointer commit for a submodule

Submodule Statuses

Possible submodule states and how to resolve them:

  • Out of sync: The pointer commit changed. Stash, commit, or discard changes.
  • Added but not initialized: Right-click and select Initialize.
  • Added and initialized but not committed: Commit the submodule folder and update .gitmodules.

Keep Submodules Up to Date

Enable automatic submodule updates:

  • Globally: Preferences > General
  • Per repository: Preferences > Submodules

Subtree Support

GitKraken Desktop does not support subtree workflows in-app.

Have feedback about this article? Did we miss something? Let us know!
On this page