当我使用git时,我经常会发现自己键入一系列以git开头的命令,后跟各种参数。
无论如何,是否有一种进入“ git-mode”的方式让我使用所有不带git前缀的git命令?
例如,代替输入以下命令:
git fetch
git status
git diff
git add file.txt
git commit
git push
我想改用:
enter-git-mode
fetch
status
diff
add file.txt
commit
push
exit-git-mode
如果您一直愿意处于“ git模式”,那么简单的答案就是输入以下命令:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句