GIT-Prozess: Könnte jemand den Check-in / Check-out-Prozess erläutern?

4

Ich habe Schildkröte SVN für einige Jahre benutzt, aber jetzt bewege ich mich mit Git. Könnte jemand erklären, was der Prozess für das Tun des Folgenden in Git ist:

Holen Sie sich spätestens, Check in

Ich habe es geschafft, das Repository erfolgreich zu klonen, Änderungen vorzunehmen, festzuschreiben und dann die Änderungen zu übertragen. Laut Git ist alles in Ordnung, aber ich kann die Änderungen auf dem Remote-Server nicht sehen.

Mein Setup ist:

Remote-Server mit Git-Repository und Dev-Computer, der eine Verbindung zu Git herstellt, um eine lokale Kopie der Lösung zu erstellen, auf der gearbeitet werden soll.

Auch wenn ich den Verlauf auf meinem lokalen Computer ansehe, ist alles in Ordnung! Es zeigt den gesamten Verlauf, wenn ich zum Server gehe, werden die Änderungen nicht angezeigt!

Wenn ich es nicht richtig mache, lass es mich wissen!

Funky
quelle
Können Sie anzeigen, mit welchen Befehlen Sie den Serverstatus ermitteln?
pcm
Haben Sie auch ein Bare- oder Development-Repo auf der Fernbedienung erstellt?
pcm

Antworten:

2

Zur Beantwortung Ihrer Frage ... In Git gibt es wirklich keinen "Check in Check out" -Prozess. Diese Verweise gelten für zentralisiertes, nicht verteiltes VCS.

Bei einem zentralisierten VCS gibt es eine absolute Codebasis ... Die Quelle. Bei einem Distributed VCS ist das nicht so ...

Git hat eine Abstraktionsebene namens Index, die den Code des Arbeitsverzeichnisses vom Repository trennt. In dieser Hinsicht müssen Sie Ihre Änderungen zum Index hinzufügen und sie dann in das Repository übertragen. Dieses Commit spiegelt jedoch keine direkte Aktualisierung des Arbeitsverzeichnisses wider.

Damit Sie nach einem Commit die Änderungen auf der Remote-Seite physisch "sehen" können ... Sie benötigen einen Hook, der an das Remote-Arbeitsverzeichnis gesendet wird, um aus dem aktualisierten Repo ...

Vermutung hier ... Aber ich gehe davon aus, dass Sie etwas im Sinne eines Website-Management-Workflows tun möchten. Verwenden von Git zum Verwalten einer Website

Git ist ein extrem leistungsfähiges und robustes DVCS ... Sie müssen jedoch vollständig verstehen, wie es funktioniert, um es effektiv zu nutzen. Bei allem Respekt empfehle ich Ihnen, die Dokumentation vollständig zu lesen. Hier ist jedoch ein sehr seriöser Ausgangspunkt :-) Git Magic

Eddie B
quelle
1

Ich zeige meinen Workflow mit Github als Server für meine Repositories:

If I've not nothing on my machine:
$ git clone [email protected]:<username>/<repository-name>.git

Jetzt haben Sie Ihre lokale Kopie. Wenn Sie bereits eine Kopie haben, müssen Sie nicht erneut klonen. Einfach ziehen:

$ git pull origin master

Mit diesem Befehl werden alle Aktualisierungen vom Server auf Ihren Computer heruntergeladen.

Jetzt kannst du arbeiten. Machen Sie Commits. Wenn du fertig bist. Sie können Ihren Code mit den folgenden Befehlen in den Server übertragen:

$ git add .
$ git commit -m 'some stuffs'
$ git add .
$ git commit -m 'some others stuff'
...
$ git add .
$ git commit -m 'some others stuff'
$ git push origin master

Befehl "Git Push Origin Master" setzen Sie Ihren Code auf den Server. Wenn andere Benutzer Commits gepusht haben!?!?!? Gut: bevor Sie Ihren Code drücken, müssen Sie "pull" ausführen. Dies ist die Reihenfolge, die ich bevorzuge:

1:

$ git pull origin master // now I can start to work

2:

$ git add .
$ git commit -m 'some stuffs'
$ git add .
$ git commit -m 'some others stuff'
...
$ git add .
$ git commit -m 'some others stuff'

3:

$ git pull origin master
$ git push origin master

Wenn es nach dem Pull einige Konflikte gibt, beheben Sie sie einfach, fügen Sie sie hinzu, schreiben Sie sie fest und drücken Sie sie schließlich.

sensorario
quelle
Sie sollten dies verwenden git pull --rebase, um zu vermeiden, dass der Verlauf durch unnötige Zusammenführungen überladen wird.
Psusi
Ich ziehe $ git merge <branch-name> --no-ff. Vielen Dank für Ihr Feedback
sensorario
0

@Funky,
Da Sie den Verlauf lokal sehen können, gehe ich davon aus, dass Sie Ihre Änderungen ordnungsgemäß in die lokale Kopie Ihres Git-Repos übernehmen können. Es ist nicht klar, was Sie auf der Fernbedienung ('dem Server') tun: "... wenn ich zum Server gehe, werden die Änderungen nicht angezeigt!". Je nachdem, wie der Server (remote) konfiguriert ist, sehen Sie die Dinge möglicherweise nicht so wie auf Ihrem Entwicklungscomputer.

Wenn Sie sicher sind, dass Ihre Änderungen tatsächlich nicht auf der Fernbedienung (dem Server) vorhanden sind, fehlt möglicherweise nur Folgendes (auf Ihrem lokalen Entwicklercomputer):

git push origin master

Ein git statusvor und nach dem obigen Befehl gibt Ihnen nützliche Informationen zu Unstimmigkeiten zwischen Ihrer lokalen und Remote-Kopie.

Gehen zu überprüfen, zu einer anderen Maschine (oder einen anderen Ordner auf der gleichen Entwickler - Maschine) und tun: git clone <git-url-of-your-server>. Und überprüfen Sie, ob Ihre Änderungen vorhanden sind.

FractalSpace
quelle