How to show relative paths in git diff command?

前端 未结 2 949
感情败类
感情败类 2021-01-18 09:33

It works in this way:

MYPC /d/home/project/some/path (master)
$ git diff --name-only --cached
root.txt
some/path/relative.txt

I.e. it shows

相关标签:
2条回答
  • 2021-01-18 10:14

    So far, I didn't find a way to use relative paths by using git-diff.

    The only way work for me:

    $ git status -s | awk '{print $2}'
    ../../root.txt
    relative.txt
    

    Or

    $ git status -s | cut -c4-
    

    The last approach explained in How can I run "git status" and just get the filenames. . The first one quite similar. :)

    But it'd be good to find non-pipeline way. Seem, there is no way to avoid using --cached. So, mostly it's not an answer.

    0 讨论(0)
  • 2021-01-18 10:31

    git status -s already outputs relative paths that can be easily isolated.

    If you need to use git diff, you can pipe the output to realpath, if available:

    $ git diff --name-only | \
        xargs -I '{}' realpath --relative-to=. $(git rev-parse --show-toplevel)/'{}'
    ../../root.txt
    relative.txt
    
    0 讨论(0)
提交回复
热议问题