Come ottengo il percorso assoluto (completo) di un file, relativo al repository?git: Ottieni il percorso assoluto del file, relativo al repository
$ cd lib
$ git absolute-path test.C# how to do this?
lib/test.c
Come ottengo il percorso assoluto (completo) di un file, relativo al repository?git: Ottieni il percorso assoluto del file, relativo al repository
$ cd lib
$ git absolute-path test.C# how to do this?
lib/test.c
Uso git ls-tree
:
$ cd lib
$ git ls-tree --full-name --name-only HEAD test.c
lib/test.c
Questo funziona solo per i file che sono stati commessi in pronti contro termine, ma è meglio di niente.
Incollare quanto segue nel terminale bash funzionerà, indipendentemente dal fatto che "test.c" esista o meno. È possibile copiare la funzione git-absolute-path nel file .bashrc per comodità future.
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
"percorso assoluto" e "relativo al repository" sembrano contraddirsi l'un l'altro? – WiseOldDuck