yurikhan: (Default)
[personal profile] yurikhan

Заметка для себя, чтоб не потерять.

Типичная задача: добавить сабмодуль в git-репозиторий.

Решение человека, только что читавшего мануал: $ git submodule add git@host:path/repo.git. Клонирует удалённый репозиторий в подкаталог текущего, регистрирует его в .gitmodules и .git/config.

Как обычно получается у меня: $ git clone git@host:path/repo.git. Клонирует удалённый репозиторий в подкаталог текущего и больше ничего не делает. Обнаруживается это где-то ближе к тому моменту, когда добавление сабмодуля нужно закоммитить.

Соответственно, задача: На входе есть суперпроект (в терминах git-submodule(1)) и внутри него локальная копия репозитория, который нужно сделать сабмодулем. Считаем, что текущий каталог находится внутри суперпроекта, а корень будущего сабмодуля является непосредственным подкаталогом текущего. Решение методом выливания воды из чайника заранее отметаем как неизящное.

Из инструментов у нас есть git submodule add [-b <branch>] <repository> <path>. Ветку указывать нужно в редких случаях и можно руками. Путь легко вводится по M-RET в Midnight Commander’е. А вот URL репозитория хочется достать и подставить автоматически.

Достать путь можно так: $ git -C <submodule> config --get remote.origin.url.

Однако писать $ git submodule add $(<строчка выше>) каждый раз утомительно, поэтому добавляем алиас:

$ git config --global --edit

[alias]
    subinit = !sh -c 'sub="$1" && shift && git submodule add "$@" $(git -C "$sub" config --get remote.origin.url)' -

$ git subinit repo
Adding existing repo at 'repo' to the index

$ git subinit repo2 -b master
Adding existing repo at 'repo' to the index
From:
Anonymous (will be screened)
OpenID (will be screened if not validated)
Identity URL: 
User
Account name:
Password:
If you don't have an account you can create one now.
Subject:
HTML doesn't work in the subject.

Message:

 
Notice: This account is set to log the IP addresses of everyone who comments.
Links will be displayed as unclickable URLs to help prevent spam.

Profile

yurikhan: (Default)
Yuri Khan

June 2017

S M T W T F S
    123
45678910
1112 1314151617
18192021222324
252627282930 

Links

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 2017-09-25 00:38
Powered by Dreamwidth Studios