Может ли git alias использовать аргументы в случае, если я должен повторить один и тот же текст в двух местах? - PullRequest
0 голосов
/ 11 мая 2018

Не используя оболочку, могу ли я использовать аргументы для псевдонимов git?

Например, моя основная удаленная ветка всегда называется "upstream", иногда git теряет ссылку с моими локальными ветвями и говорит:

There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=<remote>/<branch> master

Мне нужен псевдоним, такой как

[alias]
    reup = branch --set-upstream-to=upstream/$1 $1

, чтобы я мог просто набрать git reup master

(или, что еще лучше, настроить git так, чтобы всегда предполагать, что remote ")вверх по течению "?)

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

без использования оболочки? Нет, но с оболочкой, конечно:

[alias]
brup = "!f() { git branch --set-upstream-to=${2:-origin}/$1 $1; }; f"

Теперь вы можете запустить git brup dev, чтобы установить восходящий поток на origin/dev или git brup dev upstream, чтобы установить восходящий поток на upstream/dev.

0 голосов
/ 11 мая 2018

Да, вы можете создавать git псевдонимы с параметрами, вам просто нужен простой трюк с # в конце строки, иначе git снова добавит параметры. Так что в вашем случае это должно работать:

[alias]
    reup = "!git branch --set-upstream-to=upstream/$1 $1 #"

Но на самом деле это не ваш истинный вопрос, который больше напоминает: как переименовать origin в upstream.

Взгляните на git-remote, это должно помочь:

   rename
       Rename the remote named <old> to <new>. All remote-tracking branches and configuration settings for the remote are updated.

Так попробуйте:

git remote rename origin upstream

Если это работает так, как вам нужно, тогда вам вообще не нужен псевдоним.

(В противном случае имя «origin» здесь жестко закодировано: https://github.com/git/git/blob/69d71ec4433d21f464d83b529432856da2387bba/remote.c#L675, поэтому вам необходимо изменить его и перекомпилировать git)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...