Создайте псевдоним с более чем 1 командой в качестве имени псевдонима

Я хочу создать псевдоним, состоящий из двух команд. Не удалось ничего найти в Интернете, так как большинство вопросов касаются псевдонима, который равен 2 командам, например:

alias command = "command1 && command2"

Что я хочу:

alias git push = "git add . && git commit -m 'auto ups' && git push"

Зачем использовать это вместо того, чтобы называть мой псевдоним gp (или любой другой псевдоним с 1 формулировкой)

  1. Я хочу сохранить тот же опыт git push
  2. Хотите узнать о bash

Это возможно?

см.: PAGER='less +/^\ *aliases' man bash

Jetchisel 24.11.2022 06:43

Не с псевдонимами оболочки, а с псевдонимами Git; хотя я считаю, что вы не можете перезаписать существующую команду Git.

Benjamin W. 24.11.2022 07:20

Что такое git push? Звучит как название нового аттракциона или парка развлечений. Кстати, если вы хотите, чтобы команда безоговорочно запускала две команды подряд, это alias foo=command1;command2. Ваш подход выполняет команду2, только если команда1 возвращает код выхода 0.

user1934428 24.11.2022 08:14
alias git push = не работает, так как псевдоним не может содержать пробелы. Назовите его git_push или git.push.
user1934428 24.11.2022 08:15

@user1934428 user1934428 «Опыт git push» означает, что вам не нужно менять команду на что-то другое. Кроме того, вы правы для &&, но в этом контексте смысл состоит в том, чтобы просто запустить любую цепочку команд, которую вы хотите, с помощью команды псевдонима из двух слов.

NIGHTSCROLLER 24.11.2022 08:52

Тогда вы можете добиться этого, конечно, с подходом, данным VonC в его ответе. Я определенно не хочу рекомендовать переопределять стандартную команду, потому что вы всегда должны помнить, что ваша версия команды ведет себя не так, как все ожидают. Это может укусить вас когда-нибудь ....

user1934428 24.11.2022 09:11

Я бы сказал, что вы дали себе совершенно другой «опыт»: стандартный «опыт» заключается в том, что вы добавляете, а затем фиксируете. В какой-то другой момент вы нажимаете. Вы не делаете все три сразу, и когда вы станете лучше в Git, вам не захочется делать все три сразу. Тем не менее, вы можете делать такие вещи, просто это сложнее, чем использовать псевдоним bash или Git.

torek 24.11.2022 13:28
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как показано здесь, вам нужно определить git оболочку.
Он должен быть установлен в вашем $PATH перед самим /usr/local/bin/git.
Или вы можете сослаться на этот сценарий через alias git=git-wrapper в своем ~/.bash_profile.

В этой оболочке на push вы можете вызвать скрипт, который будет связывать любую нужную вам команду git.

Другие вопросы по теме