Ich habe ein Git-Repository auf meinem lokalen Rechner, das ich von meinem Remote-Server geklont habe. Das Git-Repository, das ich geklont habe, ist ein Bare-Repository.
Eine Sache, die mich immer noch verwirrt, ist, dass, wenn Änderungen auf Origin vorgenommen wurden und ich git pull origin master
ausführe, um mein lokales Repository zu aktualisieren, mir git status
dann sagt, dass ich X Commits vor origin liege, wobei X die Anzahl der gerade gezogenen Commits ist.
Dies passiert, obwohl die Commit-Logs bereits identisch sind.
Also führe ich immer git push origin master
danach aus, aber ich frage mich nur, ob jemand erklären könnte, warum das notwendig ist und ob ich dabei einen Fehler mache.
Es scheint mir, dass, wenn ich die Änderungen von Origin gerade gezogen habe, die zwei Repos identisch sein sollten. Warum wird mir dann gesagt, dass ich vor Origin liege? Hängt das damit zusammen, dass es sich um ein Bare-Repository handelt?
Hier ist die Situation etwas genauer beschrieben, um es verständlicher zu machen:
Ich habe ein nacktes Git-Repo (Hub) auf einem Remote-Server. Dieses Repo hat zwei Klone: "Dev" auf meinem lokalen Rechner und "Staging" auf dem gleichen Server wie Origin.
Wenn ich Änderungen an Dev vornehme, pushe ich sie dann mit git push origin master
in das nackte "Hub"-Repo. Dann melde ich mich auf dem Remote-Server an, cd
in das "Staging"-Repo und führe git pull origin master
durch, um "Staging" von "Hub" zu aktualisieren.
Wenn ich das gemacht habe, und die Commit-Logs von Hub und Staging mit git log --pretty=oneline
vergleiche, sehe ich, dass sie identisch sind.
Wenn ich jedoch in das "Staging"-Verzeichnis gehe und git status
ausführe, erhalte ich folgendes:
$ git status
# Im Branch master
# Ihr Branch ist um 1 Commit vor 'origin/master'.
#
Nichts zu committen (Arbeitsverzeichnis sauber)
Dann führe ich normalerweise git push origin master
von dort aus durch und mir wird gesagt:
$ git push origin master
Everything up-to-date
Alles funktioniert einwandfrei, aber ich habe immer noch diese nagende Frage im Kopf, ob ich einen Fehler gemacht habe, als ich die Repos eingerichtet habe, oder ob das normal ist...