Конкатенация строк с аргументом для команды git alias - PullRequest
1 голос
/ 05 августа 2011

Поскольку я клонирую с машины с длинным именем несколько раз в день, я хотел бы создать команду git alias.

Вместо

$ git clone git://machine.with.name.i.always.mistype/with/same/dirs/here/REPO.git

Я хотел бы использовать (например, псевдоним klone)

$ git klone REPO.git

Как я могу объединить REPO.git внутри git alias с длинным хостом и каталогом по умолчанию?

Ответы [ 3 ]

3 голосов
/ 05 августа 2011
[alias]
    klone = !sh -c 'git clone git://machine.with.name.i.always.mistype/with/same/dirs/here/$1' -

должен сделать трюк.

1 голос
/ 05 августа 2011

Вы также можете сэкономить, набирая базовую часть URL-адреса, используя конструкцию в конфигурации вашего Git:

[url "<actual url base>"]
  insteadOf = <other url base>

Скажем,

[url "git://machine.with.name.i.always.mistype/with/same/dirs/here"]
  insteadOf = THERE

тогда, я полагаю,должно работать следующее:

$ git clone THERE/REPO.git
1 голос
/ 05 августа 2011

Если вы не придерживаетесь этого точного синтаксиса, используйте псевдоним оболочки или функцию под названием "git-klone". Использование bash или другой оболочки, производной от sh:

git-klone()
{
    git clone git://machine.with.name.i.always.mistype/with/same/dirs/here/"$@"
}

Использование csh или tcsh:

alias git-klone 'git clone git://machine.with.name.i.always.mistype/with/same/dirs/here/\!*'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...