Início·Comandos de terminal

git submodule

git

Uso

git submodule update --init --recursive

Fixa outro repositório em um commit dentro do seu; um clone comum deixa a pasta vazia até update --init, e o pai aponta para um commit, não para um branch.

Opções comuns

OpçãoSignificado
add <url> <path>pin another repository at a path
update --initfill in a submodule folder that a clone left empty
--recursivego into submodules of submodules
update --remotemove the pin to the tip of the tracked branch
statusthe commit each submodule sits at
deinit <path>unregister it
foreach <cmd>run a command in each one

Exemplos

git submodule update --init --recursive

the command that fills empty submodule folders after a clone

git submodule add https://github.com/x/lib.git vendor/lib

adds a dependency as a submodule

git submodule update --remote

updates the pinned commit to the branch tip

O confuso é que desfazer tem várias formas: mover para onde um branch aponta não é o mesmo que criar um commit que reverte.

Como ler

  • Os colchetes [ ] marcam uma parte que você pode omitir.
  • As reticências … indicam que você pode listar vários.
  • As opções diferenciam maiúsculas: em alguns comandos -r e -R fazem coisas diferentes.

Perguntas

Q. O que git submodule faz?

Fixa outro repositório em um commit dentro do seu; um clone comum deixa a pasta vazia até update --init, e o pai aponta para um commit, não para um branch.

Q. Como se digita?

git submodule update --init --recursive — os colchetes marcam o que você pode omitir.

Q. Quantas opções vale a pena saber?

Aqui estão 7; a lista completa está em man git. Este comando fica em git.

Comandos relacionados

página man: man git-submodule