Если вы хотите все время находиться в «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