回答
添加到您的.bashrc
:
gitstatusinwork() {
if [[ "$PWD" != "$MYOLDPWD" ]]; then
MYOLDPWD="$PWD"
if [[ "$PWD/" = ~/work/* ]]; then
if [[ "$OLDPWD" != ~/work/* && "$INWORKDIR" == 0 ]]; then
git status
fi
INWORKDIR=1
else
INWORKDIR=0
fi
fi
}
export PROMPT_COMMAND="$PROMPT_COMMAND; gitstatusinwork"
此功能只要执行git status
您输入您~/work
目录(或其任何子目录),则不会再显示出来,除非你走出~/work
的目录并重新输入。
谢谢你的完美。 – napoleon
不要忘记接受做你想做的答案。 –
最简单的方法是:
cd ~/work && git status
我不认为你正在寻找这虽然。
另一个选项是覆盖默认的cd
命令。你可以在你的.bashrc
或.bash_profile
文件的末尾放置一个bash的功能,像这样:
cd() {
builtin cd "$1"
# detect if the current directory is a git repository
if [ -d .git ] || git rev-parse --is-inside-work-tree 2> /dev/null > /dev/null; then
echo ""; git status
fi
}
我希望这有助于。
更新:
如果你只是想看看git status
当你cd
到您的回购协议的根源,你可以使用的条件,像这样的第一部分:
cd() {
builtin cd "$1"
# detect if the current directory is a git repository
if [ -d .git ]; then
echo ""; git status
fi
}
谢谢,这很有趣,我不必为其他回购制作不同的别名。 我甚至没有考虑覆盖默认命令,下次我会记得这种可能性! – napoleon
我喜欢这个。我认为这会让很多人疯狂,因为他们围绕回购协议内的目录跳跃,但我几乎从不这样做;我拥有扫描相关文件的别名,并使用相对路径打开它们,以便一个别名可以从回购根目录添加/提交/推送,并获取所有更改,而无需爬入和移出子目录。对我来说,这太棒了。 –
@PaulHodges如果你只是采用条件的第一部分,它只会在根目录下工作。我会发布更新。 –
- 1. 从CD自动启动创建我自己的启动选项
- 2. 批处理命令将目录移动到另一个目录
- 3. 键入“cd”命令到linux git目录时发生了什么?
- 4. 如何执行某些命令时,某人cd到特定的目录
- 5. 定制cd命令
- 6. cd命令不会改变目录。命令提示符
- 7. Ranger自定义命令将文件移动到预先指定的目录?
- 8. 如何启动一个psql命令行?
- 9. Vim的自动命令文件类型没有被启动时
- 10. java项目里面的启动命令
- 11. 如何从usercontrol启动一个命令到一个窗口
- 12. 编程启动Terminal.app与一个指定的命令(以及自定义颜色)
- 13. 启动一个命令行,包括来自C#的参数#
- 14. 你如何通过命令调用终端并cd到目录?
- 15. 在启动时找不到目录
- 16. Crontab CD到目录
- 17. 在启动python shell时自动执行命令
- 18. DOS启动命令确实打开带空格的目录
- 19. 查找命令行选项一个进程启动与
- 20. 简单的手动启动用户指令,以防Windows CD无法自动启动
- 21. JVM命令启动选项复制
- 22. 来自android命令行的GNURoot或开机时的自动启动
- 23. 定时器后启动一个活动
- 24. 使用启动命令将命令传递到另一个cmd窗口
- 25. LINUX/UNIX:脚本启动一些命令,如果一些目录树中存在
- 26. 为命令启动定义回调
- 27. adb shell命令 - cd:没有这样的文件或目录
- 28. 启动刀配置命令时出错
- 29. 在启动时运行u-boot命令
- 30. 在Emacs启动时执行命令(emacs.el)
为什么不?这是一个简单的解决方案,可以让您控制结果。如果你不想要别名,那么我的下一个最好的临时解决方案将是一个非常丑陋的解决方案 - 我可能会设置一个陷阱调试以扫描最后执行的命令并运行'git status'(如果它是cd到*/work中。这是自动的,但受到bug和很多修补。 –
我试图强迫自己制作脚本。 但我会做一个别名! – napoleon
锻炼所有的bash肌肉! :D –