如何让git status自定义别名的路径显示与原生命令一致
问题根因
你当前配置的git stat别名使用了!前缀,Git 执行带!前缀的别名时,默认会将工作目录切换到Git仓库的根目录,因此输出的路径全部是相对于根目录的,这是和原生git status行为不一致的核心原因。
解决方案
方案一(推荐)
普通Git别名不需要加!前缀,直接配置命令映射即可,会完全复用原生命令的所有上下文和行为:
修改全局~/.gitconfig文件的alias配置为:
[alias] stat = status
修改后执行git stat的输出会和原生git status完全一致,路径自动适配当前工作目录。
方案二(适用于必须用!前缀的场景)
如果你的别名逻辑需要组合多个Shell命令、必须保留!前缀,可以使用Git为Shell类别名内置的$GIT_PREFIX环境变量,该变量存储了当前执行命令的目录相对于仓库根目录的路径,配置如下:
[alias] stat = !"git -C \"$GIT_PREFIX\" status"
其中-C参数的作用是让Git先切换到指定目录后再执行后续命令,同样可以实现和原生git status完全一致的路径输出效果。
内容的提问来源于stack exchange,提问作者dtell
相关产品推荐
相关产品推荐

