Если вы хотите все время находиться в «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 diff1 . Таким образом, следующее, небольшое увеличение сложности состоит в том, чтобы настроить его так, чтобы псевдонимы могли активироваться и деактивироваться динамически. Вы можете сделать это с
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командами - кроме, конечно, вы не можете запустить diff1 .
Очевидно, это не волшебным образом обрабатывает все git команды. Если вы хотите обрабатывать больше подкоманд (например, archiveили branch), вам нужно добавить их в псевдонимы.
________
1, кроме ввода /bin/diffили/usr/bin/diff
dateилиls -al), когда вы находитесьgitsh, вы должны набрать!сначала. В зависимости от рабочего процесса пользователя это может быть громоздким.