2013-06-05 15 views

Odpowiedz

16

Zastosowanie git ls-tree:

$ cd lib 
$ git ls-tree --full-name --name-only HEAD test.c 
lib/test.c 

Zadziała tylko dla plików, które zostały popełnione w repo, ale lepsze to niż nic.

4

Wklejenie następujących elementów do twojego terminala Bash będzie działało, niezależnie od tego, czy "test.c" istnieje, czy nie. Możesz skopiować funkcję-ścieżki-git do pliku .bashrc dla przyszłej wygody.

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 
+1

MacOS X "readlink" nie ma -f (i domyślam się * BSD). Sugestie na przenośny sposób to zrobić? – TomOnTime

+0

Czy zaktualizowany skrypt działa? Użyłem http://stackoverflow.com/a/3572105/3215004 – gmatht

Powiązane problemy