Git-Repository-Setup für die Entwicklung von zwei Computern?

Ich habe gerade mit der Verwendung von Git begonnen und bin beeindruckt von den Workflow-Unterschieden zu SVN, aber ich bin auf eine strukturelle / Setup-Frage gestoßen, die in der Dokumentation nicht intuitiv zu erklären scheint, wie sie einzurichten ist, und ich frage mich, ob es ist sogar möglich.

Mein Setup ist, dass ich mehrere Computer habe, auf denen ich entwickle (Desktop und Laptop). Um die Synchronisation zu vereinfachen und ein Backup für das Git-Repository bereitzustellen, richte ich auf meinem Linux-Heimserver ein "öffentliches" nacktes Repository ein Kann von Desktop und Laptop in ssh. Es ist nicht wirklich öffentlich, da es SSH-Zugriff auf die Box erfordert, um dorthin zu gelangen.

Mein Problem tritt auf, wenn ich Änderungen auf meinem Desktop vornehme. Ich kann Änderungen problemlos in das Server - Repository übertragen (ich habe dasmirror Flagge gesetzt für dieorigin Remote auf diesem Repository) und mitgitx Ich kann sehen, dass der lokale und der entfernte Status identisch sind und jeder einzelne Commit auf dem Server protokolliert wurde.

Die Frage ist, wann ich auf meinen Laptop umsteige, den ich eher selten benutze, das Git-Repository gibt es wahrscheinlich mehrere Commits hinter der Serverversion und muss aktualisiert werden. Ich fing an zu benutzengit pull Um diese Änderungen lokal abzurufen, aber nicht alle einzelnen Festschreibungen auf dem Server auf das lokale Repository zu duplizieren, wird dem lokalen Repository eine neue Zusammenführungsfestschreibung hinzugefügtgitx zeigt das Zusammenführen in der Remote-Repository-Verzweigung an diesem Punkt.

Gibt es einen Befehl / Workflow, mit dem ich das lokale Repository auf den genauen Status des Remote - Repositorys aktualisieren kann (zgit push --mirror keine Daten verloren gehen würden)? Müsste ich mein lokales Repository jedes Mal löschen undgit clone es jedes Mal wieder?

Gegenwärtig würde kein anderer Zugriff auf dieses Repository benötigen, obwohl es in Zukunft ein öffentliches Repository werden könnte, aus dem die Benutzer Daten abrufen können. Antworten, die diese Möglichkeit nicht zerstören, wären daher willkommen.

Bearbeiten: Zu meinen Aufgaben gehört das Umbasieren von Zweigen vom Master-Zweig. könnte das sein, was das auslöstgit pull Befehl als Zusammenführung anzeigen? Ist der--rebase kennzeichne was ich dann brauche?

Lösungserläuterung: Es stellte sich heraus, dass ich Folgendes getan hatte, um meine Repositorys einzurichten:

Verwenden Sie einen Laptop, um ein Git-Repository zu initialisierenLaptop-Repository auf den Server übertragen (FestschreibenA)Eine Änderung vorgenommen und auf dem Laptop festgeschrieben (Laptop bei FestschreibenB)Desktop klont Server-Repository (FestschreibenA)Nehmen Sie Änderungen auf dem Desktop vor und übernehmen Sie (Commits)C, D, Eeinschließlich Umbasierungszweige)Desktop pusht zum Server (Server schnell vorwärts zuE)Wenn der Laptop vom Server abruft, führt dies zu einer Zusammenführung (seitB kann nicht vorspulenE).Der Laptop führt die Änderungen zusammen und überträgt sie an den ServerDer Desktop muss nun ebenfalls zusammengeführt werden.

Aufgrund dieses einen zusätzlichen Commits, das ein ungewollter Fehler war, dachte ich, dass es immer eine Fusion sein würde. Auf Xentacs Vorschlag hin bin ich zurückgegangen und habe auf dem Laptop festgestellt, dass ich eine Zusammenführung vorgenommen habe, die nicht auf den Server übertragen wurde, was der Schuldige war, und als ich alle drei wirklich synchronisiert hatte,git pull --ff (nur Schnellvorlauf-Zusammenführungen erzwingen) funktioniert einwandfrei und warnt mich, wenn etwas nicht synchron ist, bevor die Zusammenführung durchgeführt wird.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage