Ich habe einige PHP-Dateien in einem Ordner A (das ist ein Git-Projekt). In dieser PHP-Datei möchte ich "Git-Protokoll" ausführen, aber für den Ordner B. Ordner B ist ein anderes Git-Projekt (daher unterscheidet sich das Protokoll zwischen A und B).
Wie kann ich das mit dem Shell-Befehl machen?
cd /other/dir && git log && cd -
in Bash Shell?--git-dir
: siehe meine Antwort untenAntworten:
Von
man git
:Sie können dies mit dem
--git-dir
Parameter tun , bevor Sie Befehle übergeben.(Die Angabe des
.git
Verzeichnisses ist erforderlich.) Aus der Dokumentation :quelle
.git
Verzeichnis verweisen . Versuchen Sie esgit --git-dir=/foo/bar/.git log
.log
. Trygit --git-dir /foo/someclone/.git status
- git wird total verwirrt. Ich empfehle-C
wie unten angegeben.man git
macht auf meinem System (2.3.5). Aber @VonC Antwort funktioniert viel besser.Mit git 1.8.5 (Q4 2013) haben Sie eine andere Wahl als die Einstellung
--git-dir
.Wenn Sie
git log
in einem Ordner ausführen möchten, geben Sie Folgendes einB
:Siehe Commit 44e1e4 von Nazri Ramliy :
quelle
log
.-R
Option von Mercurial , da es relative Pfade durcheinander bringt. Wenn ich zum Beispiel tippegit -C subdir log subdir/myfile
, wird ein Fehler ausgegeben (da nach der Datei gesucht wirdsubdir/subdir/myfile
).for p in (find . -type d -name ".git"); do git --git-dir $p ...; done
git
glauben wollen , dass es klüger ist als ich und was ich getippt habe. Wenn ich "Führe dies in Verzeichnis X aus" sage, meine ich nicht "außer manchmal etwas anderes tun".