如何獲得相對於回購的文件的絕對路徑(完整路徑)?git:獲取文件的絕對路徑,相對於回購
$ cd lib
$ git absolute-path test.C# how to do this?
lib/test.c
如何獲得相對於回購的文件的絕對路徑(完整路徑)?git:獲取文件的絕對路徑,相對於回購
$ cd lib
$ git absolute-path test.C# how to do this?
lib/test.c
使用git ls-tree
:
$ cd lib
$ git ls-tree --full-name --name-only HEAD test.c
lib/test.c
這隻適用於已經提交到回購的文件,但它總比沒有好。
無論「test.c」目前是否存在,將以下內容粘貼到您的bash終端都將起作用。您可以將git-absolute-path函數複製到.bashrc文件中,以備將來使用。
git-absolute-path() {
fullpath=$([[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}")
gitroot="$(git rev-parse --show-toplevel)" || return 1
[[ "$fullpath" =~ "$gitroot" ]] && echo "${fullpath/$gitroot\//}"
}
git-absolute-path test.c
「絕對路徑」和「相對於回購」似乎相互矛盾? – WiseOldDuck