You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
5.5 KiB
144 lines
5.5 KiB
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 [--] [<path>...] |
|
'git submodule' [--quiet] update [--init] [--] [<path>...] |
|
'git submodule' [--quiet] summary [--summary-limit <n>] [commit] [--] [<path>...] |
|
|
|
|
|
DESCRIPTION |
|
----------- |
|
Submodules are a special kind of tree entries which refer to a particular tree |
|
state in another repository. The tree entry describes |
|
the existence of a submodule with the given name and the exact revision that |
|
should be used, while an entry in `.gitmodules` file gives the location of |
|
the repository. |
|
|
|
When checked out, submodules will maintain their own independent repositories |
|
within their directories; the only link between the submodule and the "parent |
|
project" is the tree entry within the parent project mentioned above. |
|
|
|
This command will manage the tree entries and contents of the gitmodules file |
|
for you, as well as inspecting the status of your submodules and updating them. |
|
When adding a new submodule to the tree, the 'add' subcommand is to be used. |
|
However, when pulling a tree containing submodules, these will not be checked |
|
out by default; the 'init' and 'update' subcommands will maintain submodules |
|
checked out and at appropriate revision in your working tree. You can inspect |
|
the current status of your submodules using the 'submodule' subcommand and get |
|
an overview of changes 'update' would perform using the 'summary' subcommand. |
|
|
|
|
|
COMMANDS |
|
-------- |
|
add:: |
|
Add the given repository as a submodule at the given path |
|
to the changeset to be committed next to the current |
|
project: the current project is termed termed the "superproject". |
|
+ |
|
This requires two arguments: <repository> and <path>. |
|
+ |
|
<repository> is the URL of the new submodule's origin repository. |
|
This may be either an absolute URL, or (if it begins with ./ |
|
or ../), the location relative to the superproject's origin |
|
repository. |
|
+ |
|
<path> is the relative location for the cloned submodule to |
|
exist in the superproject. If <path> does not exist, then the |
|
submodule is created by cloning from the named URL. If <path> does |
|
exist and is already a valid git repository, then this is added |
|
to the changeset without cloning. This second form is provided |
|
to ease creating a new submodule from scratch, and presumes |
|
the user will later push the submodule to the given URL. |
|
+ |
|
In either case, the given URL is recorded into .gitmodules for |
|
use by subsequent users cloning the superproject. If the URL is |
|
given relative to the superproject's repository, the presumption |
|
is the superproject and submodule repositories will be kept |
|
together in the same relative location, and only the |
|
superproject's URL need be provided: git-submodule will correctly |
|
locate the submodule using the relative URL in .gitmodules. |
|
|
|
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 'git-describe' 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. |
|
+ |
|
If the submodule is not yet initialized, and you just want to use the |
|
setting as stored in .gitmodules, you can automatically initialize the |
|
submodule with the --init option. |
|
|
|
summary:: |
|
Show commit summary between the given commit (defaults to HEAD) and |
|
working tree/index. For a submodule in question, a series of commits |
|
in the submodule between the given super project commit and the |
|
index or working tree (switched by --cached) are shown. |
|
|
|
OPTIONS |
|
------- |
|
-q:: |
|
--quiet:: |
|
Only print error messages. |
|
|
|
-b:: |
|
--branch:: |
|
Branch of repository to add as submodule. |
|
|
|
--cached:: |
|
This option is only valid for status and summary commands. These |
|
commands typically use the commit found in the submodule HEAD, but |
|
with this option, the commit stored in the index is used instead. |
|
|
|
-n:: |
|
--summary-limit:: |
|
This option is only valid for the summary command. |
|
Limit the summary size (number of commits shown in total). |
|
Giving 0 will disable the summary; a negative number means unlimited |
|
(the default). This limit only applies to modified submodules. The |
|
size is always limited to 1 for added/deleted/typechanged submodules. |
|
|
|
<path>:: |
|
Path to submodule(s). When specified this will restrict the command |
|
to only operate on the submodules found at the specified paths. |
|
(This argument is required with add). |
|
|
|
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[1] suite
|
|
|