hub alias
, похоже, не учитывает --noop
, поэтому он скрывает git-alias
из https://github.com/visionmedia/git-extras.
Поскольку это команда, специфичная для концентратора, и она полезна только во время установки, я предлагаю либо:
--noop
hub [--alias|--shell-alias] [SHELL]
$0
явно hub
Мне потребовалось время, чтобы понять, о чем вы говорите. По сути, hub alias
затеняет другие команды git-alias
которые могут существовать в системе (в данном случае одна предоставляется git-extras), верно?
Я поддерживаю ваше предложение 3. Однако такое поведение может удивить некоторых, потому что в любом другом случае вызов hub <something>
должен быть идентичен git <something>
(когда hub
имеет псевдоним git
). Мне нужно обдумать это.
Спасибо за предупреждение!
Извините, если я не понял; вы меня правильно поняли.
Может ли что-то вроде hub alias-command
работать так же хорошо и быть более понятным?
Или что-то подобное ...
Во-первых, --noop
не пересылает все команды на git
. Он просто показывает, что будет выполнено hub
, но не выполняет его.
Мне нравится идея заставить hub alias
работать только в том случае, если команда вызывалась как hub
а не git
. Однако я не знаю, как это сделать технически; значение $0
для меня равно hub
, независимо от того, вызвал ли я его через псевдоним git
или нет.
Следующий вариант - сделать его собственным флагом, например hub --alias
. Однако это нарушает обратную совместимость с людьми, которые уже встроили eval "$(hub alias -s)"
- это оболочка.
@cdlm @mislav Делает ли хаб бесполезными псевдонимы git-extras, если у меня git псевдоним хаба? Разве я не могу использовать какие-либо из замечательных псевдонимов git-extras, упомянутых здесь https://github.com/tj/git-extras/blob/master/Commands.md ?
Вы можете использовать все команды git-extras, кроме git alias
и git fork
из этого репо, потому что hub alias
и hub fork
будут иметь приоритет.
Вместо этого вы можете использовать git-alias
и git-fork
или обойти псевдоним git
с помощью \
(обратная косая черта): \git alias
. Я не эксперт по go, но я возился с этим, и независимо от того, как я запускаю исполняемый файл go, os.Args[0]
всегда дает истинное имя исполняемого файла, то есть hub
, как @ - сказал
В случае hub alias
возможно, вы можете использовать тот факт, что -s
передается для выполнения hub alias
, в противном случае распечатайте уведомление о прекращении поддержки или перейдите к git
команда.
Для любой команды, если вы хотите полностью пропустить hub
из оболочки, просто выполните command git ...
. Например, command git alias
.
Да, и это имеет тот же эффект, что и обратная косая черта \
, _e.g._ \git
Самый полезный комментарий
Для любой команды, если вы хотите полностью пропустить
hub
из оболочки, просто выполнитеcommand git ...
. Например,command git alias
.