git diff --name-only如何返回相对于当前工作目录的路径?
解决git diff输出相对当前工作目录路径的问题
当然有办法!Git其实提供了专门的参数来搞定这个需求——就是--relative。
直接在你的命令里加上这个参数就行:
git diff somebranch --name-only --relative
这个参数的作用就是让Git以你当前所在的工作目录为基准,输出文件的相对路径,而不是默认的仓库根目录路径。刚好匹配你想要的效果,复制路径就能直接操作文件,和git status的输出风格保持一致。
如果之后你需要指定相对于某个特定子目录(而非当前cwd)的路径,还可以给--relative加上具体路径参数,比如:
git diff somebranch --name-only --relative=src/utils
这样就会输出相对于src/utils目录的文件路径了。
要是你用的Git版本比较老(低于1.7.5),这个参数可能不存在,不过现在大部分环境里的Git版本都远高于这个版本,所以不用太担心。
内容的提问来源于stack exchange,提问作者red888




