Mercurial hat eine Möglichkeit, das Root-Verzeichnis (das .hg enthält) über
hg root
Gibt es etwas Äquivalentes in Git, um das Verzeichnis zu erhalten, das das .git-Verzeichnis enthält?
Mercurial hat eine Möglichkeit, das Root-Verzeichnis (das .hg enthält) über
hg root
Gibt es etwas Äquivalentes in Git, um das Verzeichnis zu erhalten, das das .git-Verzeichnis enthält?
Ja:
git rev-parse --show-toplevel
Wenn Sie den Mercurial-Befehl direkter replizieren möchten, können Sie ein alias :
git config --global alias.root 'rev-parse --show-toplevel'
und jetzt git root
wird genauso funktionieren wie hg root
.
Hinweis : In einem Submodul zeigt dies das Root-Verzeichnis des Submodul y no das übergeordnete Repository. Wenn Sie Git >=2.13 oder höher verwenden, gibt es eine Möglichkeit, die Untermodule können das Root-Verzeichnis des Superprojekts anzeigen. Wenn Ihr Git älter ist als das, siehe diese andere Antwort.
Le site man
Seite für git-config
(unter Alias ) sagt:
Wenn der Alias-Erweiterung ein Ausrufezeichen vorangestellt ist, wird sie wie eine Shell behandelt Befehl behandelt. [...] Beachten Sie, dass Shell Befehle aus dem obersten Verzeichnis eines Repositorys ausgeführt werden, das nicht unbedingt nicht unbedingt das aktuelle Verzeichnis ist.
Unter UNIX können Sie das also tun:
git config --global --add alias.root '!pwd'
Wie wäre es mit " git rev-parse --git-dir
" ?
F:\prog\git\test\copyMerge\dirWithConflicts>git rev-parse --git-dir
F:/prog/git/test/copyMerge/.git
Le site --git-dir
Option scheint zu funktionieren.
De git rev-parse Handbuchseite :
--git-dir
Show $GIT_DIR if defined else show the path to the .git directory.
Sie können es in Aktion sehen in diesem git setup-sh
Skript .
Wenn Sie sich in einem Submodulordner befinden, mit Git >=2.13 verwenden :
git rev-parse --show-superproject-working-tree
Wenn Sie Folgendes verwenden git rev-parse --show-toplevel
, Stellen Sie sicher, dass es mit Git 2.25+ (Q1 2020) ist. .
Um hier eine einfache Antwort zu schreiben, so dass wir Folgendes verwenden können
git root
um die Arbeit zu erledigen, konfigurieren Sie einfach Ihr Git, indem Sie
git config --global alias.root "rev-parse --show-toplevel"
und fügen Sie dann Folgendes zu Ihrer ~/.bashrc
:
alias cdroot='cd $(git root)'
so dass Sie einfach cdroot
um an den Anfang Ihres Repo zu gelangen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.