Если вы хотите все время находиться в «git-mode», простой ответ - ввести следующие команды:
alias fetch='git fetch'
alias status='git status'
alias diff='git diff'
alias add='git add'
alias commit='git commit'
alias push='git push'
в ваш ~/.bashrc
. Но это может быть нежелательно, хотя бы потому, что вызывается обычная команда diff
, и вы не сможете получить к ней доступ, если diff
псевдоним равен git diff
1 . Таким образом, следующее, небольшое увеличение сложности состоит в том, чтобы настроить его так, чтобы псевдонимы могли активироваться и деактивироваться динамически. Вы можете сделать это с
alias enter-git-mode="alias fetch='git fetch'; alias status='git status'; alias diff='git diff'; alias add='git add'; alias commit='git commit'; alias push='git push'"
alias exit-git-mode="unalias fetch status diff add commit push"
Итак, теперь enter-git-mode
это команда (псевдоним), которая определяет первые шесть псевдонимов, и exit-git-mode
это команда, которая их не определяет .
Вы можете разбить эту длинную команду на несколько строк, если хотите:
alias enter-git-mode="alias fetch='git fetch'; alias status='git status';
alias diff='git diff'; alias add='git add';
alias commit='git commit'; alias push='git push'"
alias exit-git-mode="unalias fetch status diff add commit push"
Это позволяет вам использовать эти команды, как и любую другую команду; например,
date; status; date # A simple way of seeing how long a command takes.
time add .
commit &
commit && push
diff > differences.txt
и автозаполнение, и вы можете смешивать обычные команды Unix / Linux с git
командами - кроме, конечно, вы не можете запустить diff
1 .
Очевидно, это не волшебным образом обрабатывает все git
команды. Если вы хотите обрабатывать больше подкоманд (например, archive
или branch
), вам нужно добавить их в псевдонимы.
________
1, кроме ввода /bin/diff
или/usr/bin/diff
date
илиls -al
), когда вы находитесьgitsh
, вы должны набрать!
сначала. В зависимости от рабочего процесса пользователя это может быть громоздким.Сценарий оболочки с именем
git-mode
должен сделать трюк:На практике я бы , вероятно , просто псевдоним ,
git
чтобыg
оставаться гибкими (илиgit add
кgadd
,git fetch
к иgfetch
т.д.).источник
git add foo.c
с этим?date; status
,time add .
,commit &
,commit && push
, илиdiff > differences.txt
. Также, как написано, ваш скрипт завершится, если пользователь введет Ctrl + C.