Jak uzyskać bezwzględną (pełną) ścieżkę pliku względem repo?git: Uzyskaj bezwzględną ścieżkę pliku w stosunku do repo
$ cd lib
$ git absolute-path test.C# how to do this?
lib/test.c
Jak uzyskać bezwzględną (pełną) ścieżkę pliku względem repo?git: Uzyskaj bezwzględną ścieżkę pliku w stosunku do repo
$ cd lib
$ git absolute-path test.C# how to do this?
lib/test.c
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.
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
"Absolutna ścieżka" i "w stosunku do repo" wydają się sprzeczne ze sobą? – WiseOldDuck