Zeige Git-Logs für den Bereich der Commits auf dem Remote-Server?

8

Ich suche nach einer Möglichkeit, einen Git-Server nach seinen Logs für einen bestimmten Bereich von Commits abzufragen. Da ich ein SVN-Benutzer bin, bin ich in der falschen Denkweise und hoffe daher, dass GIT-Experten helfen können. Ich suche etwas Ähnliches wie:

%Vor%

aber für einen Git-Server. Mit anderen Worten, zeigen Sie mir die Logs für den 5. Commit bis zum 20. Commit. Danke für jede Hilfe.

    
D.C. 11.05.2011, 03:27
quelle

2 Antworten

18

Erstens, da es keine einfache Revisionsnummer mit Git gibt, würden Sie die Revision angeben, wie in Befehl rev-parse

Aber der einzige Befehl, der direkt einen Remote-Repo abfragt (ohne Daten zu klonen oder zu holen) ist git ls-remote und:

  • es wird nur SHA1 angezeigt, nicht die Protokollnachricht.
  • es funktioniert bei ref-Mustern (Kopf, Tags, Zweige, ...), nicht bei revs.

Da das Protokoll Diffstats und Full Diffs anzeigen kann, können Sie nicht nach Protokollen fragen, ohne mindestens einen Remote in einem lokalen Repo zu holen.

    
VonC 11.05.2011, 04:12
quelle
6

Ich denke, du versuchst, einige Annahmen von Subversion zu übertragen, die nicht für Git gelten. Git ist ein dezentrales Versionskontrollsystem, also laufen alle Befehle gegen Ihren lokalen Klon des Repository, nicht gegen einen entfernten Server. Außerdem gibt es in git keinen einzigen linearen Verlauf von Commits, daher müssen Sie SHA-1-Commit-IDs angeben. Sie können nicht einfach Revisionsnummern verwenden.

Um ein Protokoll zu erhalten, müssen Sie die Commits zuerst an Ihren lokalen Klon des Repositorys übertragen und dann können Sie sie abfragen.

Wenn Sie das Remote-Repository noch nicht geklont haben, müssen Sie git clone REMOTE_URL ausführen. Wenn Sie einen sekundären Remote-Server verwenden möchten, können Sie alternativ git remote add ALIAS OTHER_REMOTE_URL in einem vorhandenen Repository ausführen.

Sie müssen dann die Commits mit git fetch origin (oder git fetch ALIAS , wenn Sie einen sekundären Remote-Server hinzugefügt haben) holen.

Sobald Sie das erledigt haben, können Sie Commits (für Zweige im Remote-Repository) mit git log origin/master~5..origin/master auflisten (um beispielsweise die letzten fünf Commits anzuzeigen). Oder Sie können git log master..origin/master ausführen, um die neuen Remote-Commits anzuzeigen, die noch nicht lokal zusammengeführt wurden. (Es gibt viele andere Möglichkeiten, Commit-Bereiche anzugeben. Weitere Informationen finden Sie in Dokumentation oder öffne eine andere Frage.)

  1. Einige Befehle wie git ls-remote werden für einen Remote-Server ausgeführt, die meisten nicht.
Bradley Grainger 11.05.2011 04:14
quelle

Tags und Links