I want to add a git submodule with different name like:
git submodule add --name foo git@bitbucket.org:ironsand/cookbook-foo.git
I wanted to create a git submodule directory named foo
, but the repository are created with the name cookbook-foo
.
Most likely I'm doing something wrong, but I don't know what was wrong.
How can I change the name of git submodule directory?
Don't conflate the path and the name of a submodule. You want to run
git submodule add git@bitbucket.org:ironsand/cookbook-foo.git foo/
instead. For more details, see the git-submodule
man page; the relevant git-submodule
syntax here is
git submodule [--name <name>] <repository> [<path>]
where...
<repository>
is the URL of the new submodule's origin repository.<path>
, if specified, determines the name of the subdirectory (of the superproject's root directory) to receive the clone of the repo living at <repository>
; if left unspecified, <path>
defaults to the name of that repo.<name>
is the submodule's name, i.e. the name that appear in the corresponding submodule entry in the .gitmodules
file; if left unspecified, <name>
simply defaults to <path>
.Here is a toy example to fix ideas:
$ cd ~/Desktop
$ mkdir test
$ cd test
$ git init
$ git submodule add --name brutus https://github.com/bradfitz/gitbrute bradfitz_bruteforce
$ ls -a
. .git bradfitz_bruteforce
.. .gitmodules
$ cat .gitmodules
[submodule "brutus"]
path = bradfitz_bruteforce
url = https://github.com/bradfitz/gitbrute