### Struct

# Ggit Submodule

#### Description [src]

    struct GgitSubmodule {
      /* No available fields */
    }

Represents a git submodule.

#### Instance methods

###### ggit_submodule_get_fetch_recurse

Gets whether to fetch recursively. See see gitmodules(5) fetchRecurseSubmodules.

###### ggit_submodule_get_head_id

No description available.

###### ggit_submodule_get_ignore

Gets a `GgitSubmoduleIgnore`. See see gitmodules(5) ignore.

###### ggit_submodule_get_index_id

Gets the OID for the submodule in the index or `NULL` if there is no index.

###### ggit_submodule_get_name

Gets the name of the submodule from .gitmodules.

###### ggit_submodule_get_owner

Gets the containing repository for a submodule.

###### ggit_submodule_get_path

Gets the path to the submodule from the repo working directory. It is almost always the same as the name. See ggit_submodule_get_name().

###### ggit_submodule_get_update

Gets a `GgitSubmoduleUpdate`. See see gitmodules(5) update.

###### ggit_submodule_get_url

Gets the url for the submodule or `NULL` if the submodule has been deleted but not yet committed.

###### ggit_submodule_get_workdir_id

Gets the OID for the submodule in the current working directory. Corresponds to looking up ‘HEAD’ in the checked out submodule. If there are pending changes in the index or anything else, this won’t notice that. You should call `ggit_submodule_status()` for a more complete picture about the state of the working directory.

###### ggit_submodule_init

Just like “git submodule init”, this copies information about the submodule into “.git/config”. You can use the accessor functions above to alter the in-memory git_submodule object and control what is written to the config, overriding what is in .gitmodules.

###### ggit_submodule_open

Open the repository for a submodule. Multiple calls to this function will return distinct `GgitRepository` objects. Only submodules which are checked out in the working directory can be opened.

###### ggit_submodule_ref

Atomically increments the reference count of `submodule` by one. This function is MT-safe and may be called from any thread.

###### ggit_submodule_reload

Rereads submodule info from config, index, and HEAD. Call this if you have reason to believe that it has changed.

###### ggit_submodule_sync

Copies the information about the submodules URL into the checked out submodule config, acting like “git submodule sync”. This is useful if you have altered the URL for the submodule (or it has been altered by a fetch of upstream changes) and you need to update your local repo.

###### ggit_submodule_unref

Atomically decrements the reference count of `submodule` by one. If the reference count drops to 0, `remote` is freed.

###### ggit_submodule_update

Update a submodule. This will clone a missing submodule and checkout the subrepository to the commit specified in the index of the containing repository. If the submodule repository doesn’t contain the target commit (e.g. because fetchRecurseSubmodules isn’t set), then the submodule is fetched using the fetch options supplied in options.