Git别名执行git status显示父目录路径问题求助
问题原因
用!开头的Git别名本质是在仓库根目录执行shell命令,不管你当前在仓库的哪个子目录里。直接敲git status时,Git会根据你当前所在的子目录输出相对路径;但别名里的git status是在根目录运行的,所以会显示从根目录开始的完整路径(带父目录前缀)。
解决方法
给git status加个--relative参数,强制它输出相对于当前工作目录的路径,修改后的别名如下:
addcs = !git add **/*.cs && git status --relative
如果只想暂存当前目录下的.cs文件(不递归子目录),就改成:
addcs = !git add ./*.cs && git status --relative
这样执行git addcs时,git status的输出就和直接敲git status完全一样了。
要是怕shell路径解析出问题,还可以用Git自带的路径规范,避免shell扩展的干扰:
addcs = !git add :/*.cs && git status --relative
这里的:/*.cs表示仓库根目录下所有递归的.cs文件,和**/*.cs效果一致,但更稳妥。
内容的提问来源于stack exchange,提问作者Nic Foster
相关产品推荐
相关产品推荐

