mirror of
https://github.com/git/git
synced 2024-08-25 02:35:46 +00:00
![Mark Levedahl](/assets/img/avatar_default.png)
When working in the top-level project, it is useful to create a new submodule as a git repo in a subdirectory, then add that submodule to the top-level in place. This patch allows "git submodule add <intended url> subdir" to add the existing subdir to the current project. The presumption is the user will later push / clone the subdir to the <intended url> so that future submodule init / updates will work. Absent this patch, "git submodule add" insists upon cloning the subdir from a repository at the given url, which is fine for adding an existing project in, but less useful when adding a new submodule from scratch to an existing project. The former functionality remains, and the clone is attempted if the subdir does not already exist as a valid git repo. Signed-off-by: Mark Levedahl <mlevedahl@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
84 lines
2.6 KiB
Plaintext
84 lines
2.6 KiB
Plaintext
git-submodule(1)
|
|
================
|
|
|
|
NAME
|
|
----
|
|
git-submodule - Initialize, update or inspect submodules
|
|
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
'git-submodule' [--quiet] add [-b branch] [--] <repository> [<path>]
|
|
'git-submodule' [--quiet] status [--cached] [--] [<path>...]
|
|
'git-submodule' [--quiet] [init|update] [--] [<path>...]
|
|
|
|
|
|
COMMANDS
|
|
--------
|
|
add::
|
|
Add the given repository as a submodule at the given path
|
|
to the changeset to be committed next. If path is a valid
|
|
repository within the project, it is added as is. Otherwise,
|
|
repository is cloned at the specified path. path is added to the
|
|
changeset and registered in .gitmodules. If no path is
|
|
specified, the path is deduced from the repository specification.
|
|
If the repository url begins with ./ or ../, it is stored as
|
|
given but resolved as a relative path from the main project's
|
|
url when cloning.
|
|
|
|
status::
|
|
Show the status of the submodules. This will print the SHA-1 of the
|
|
currently checked out commit for each submodule, along with the
|
|
submodule path and the output of linkgit:git-describe[1] for the
|
|
SHA-1. Each SHA-1 will be prefixed with `-` if the submodule is not
|
|
initialized and `+` if the currently checked out submodule commit
|
|
does not match the SHA-1 found in the index of the containing
|
|
repository. This command is the default command for git-submodule.
|
|
|
|
init::
|
|
Initialize the submodules, i.e. register in .git/config each submodule
|
|
name and url found in .gitmodules. The key used in .git/config is
|
|
`submodule.$name.url`. This command does not alter existing information
|
|
in .git/config.
|
|
|
|
update::
|
|
Update the registered submodules, i.e. clone missing submodules and
|
|
checkout the commit specified in the index of the containing repository.
|
|
This will make the submodules HEAD be detached.
|
|
|
|
|
|
OPTIONS
|
|
-------
|
|
-q, --quiet::
|
|
Only print error messages.
|
|
|
|
-b, --branch::
|
|
Branch of repository to add as submodule.
|
|
|
|
--cached::
|
|
Display the SHA-1 stored in the index, not the SHA-1 of the currently
|
|
checked out submodule commit. This option is only valid for the
|
|
status command.
|
|
|
|
<path>::
|
|
Path to submodule(s). When specified this will restrict the command
|
|
to only operate on the submodules found at the specified paths.
|
|
|
|
FILES
|
|
-----
|
|
When initializing submodules, a .gitmodules file in the top-level directory
|
|
of the containing repository is used to find the url of each submodule.
|
|
This file should be formatted in the same way as `$GIT_DIR/config`. The key
|
|
to each submodule url is "submodule.$name.url". See linkgit:gitmodules[5]
|
|
for details.
|
|
|
|
|
|
AUTHOR
|
|
------
|
|
Written by Lars Hjemli <hjemli@gmail.com>
|
|
|
|
GIT
|
|
---
|
|
Part of the linkgit:git[7] suite
|