Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Versionskontrolle mit Git und SVN

Pushing- und Pulling-Mechanismus

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Der Pushing-Mechanismus von GIT überträgt einen Versionsstand einer Datei von einem lokalen auf ein Remote Repository. Der Download eines entsprechenden Versionsstands erfolgt über den Pulling-Mechanismus.

Transkript

Lokale Versionskontrolle ist nun sehr interessant. Aber im Regelfall möchte man seine Arbeit auch mit anderen teilen. Der Git Mechanismus hierfür lautet Pushing und Pulling. Was es mit diesem Mechanismus auf sich hat, lernen Sie in diesem Video. Der Prozess mit Git zu arbeiten wird nun um eine weitere Stage erweitert. Anders als nun vorher gibt es neben dem lokalen Repository auch möglicherweise nun noch ein Remote Repository das dementsprechend auf einem Server gehostet wird. Den Prozess der Bereitstellung aus dem eigenen lokalen Repository bezeichnet man als Pushing. Damit wird nun also ein Versionsstand vom lokalen Repository auf das Remote Repository übertragen. Um einen entsprechenden Stand herunterzuladen, nutzt man die Funktionalitäten von Pulling. Für das Hosting eines solchen Remote Repository gibt es nun verschiedene Anbieter oder auch Möglichkeiten des eigenen Hosting. Die größten und bekanntesten öffentlichen Anbieter sind Bitbucket und GitHub. Einer der größten Unterschiede zwischen Bitbucket und GitHub ist dass ich auch ein privates Repository auf Bitbucket bekommen kann. Alle Repositories auf GitHub sind im Normalfall immer Open Source. Außer ich zahle dafür. Für das eigene Hosting empfiehlt es sich, eine Lösung zu benutzen, die dementsprechend auch ein Webinterface bietet. Bekannte kostenlose Lösungen hierfür sind GITLAB und GITORIOUS. Für den weiteren Verlauf dieses Trainings werde ich nun ein Repository bei Bitbucket erstellen. Nach der Anmeldung bei bitbucket.org kann man nun ein Repository erstellen. Man vergibt einen Namen für das jeweilige Projekt, kann noch eine Beschreibung angeben, hierbei markiert man, ob es sich um ein privates Repository handelt des weiteren, wer Forks erstellen darf, in diesem Fall der Repository Typ muss Git sein. und wenn man möchte, kann man auch eine Programmiersprache angeben. Bestätigen Sie nun mit Create Repository und das Repository steht nun bereit. Um nun für die weiteren Schritte die korrekte URL zu diesem Repository zu verwenden, klappe ich hier unten auf und kopiere diesen Link. Um Git nun mitzuteilen, wo sich mein Repository befindet, muss ich ein so genanntes Remote hinzufügen. Den soeben kopierten Link nutze ich nun in der Kommandozeile mit dem Befehl git remote add diesem Remote muss ich auch einen Namen geben, und der entsprechenden URL. In dem Augenblick kennt Git nun das neue Repository. Um das Gleiche auch mit der grafischen Anwendung zu tun, navigiere ich über TortoiseGit, Settings, bestätige mit OK und kann unter dem Reiter Git bei Remote hier die URL einfügen und entsprechend auch den Namen vergeben. Bestätige nun mit Add New. An der Stelle schlägt mit Git nun vor, Dinge von dem neuen Remote herunterzuladen. Ich bestätige mit Nein, denn das Repository ist noch leer. Bestätige nun mit OK. und nun kennt auch die grafische Oberfläche das neue Remote. Mit dem Befehl git remote -v lassen sich die Remotes auch noch anzeigen, und möchte ich ein Remote später umbenennen oder löschen, geht dies einfach mit rename oder delete an Stelle von add. Der nächste Schritt wäre es nun, einen Stand von dem lokalen Repository auf das Remote Repository hochzuladen. Dies funktioniert mit dem Push. An der Stelle bin ich frei, sowohl ein bestimmtes Remote auszuwählen sollte das Projekt mehrere Remotes haben, und dort auch noch einen bestimmten Branch zu addressieren. Lassen Sie mich nun also wieder in der Kommandozeile beginnen. Im Normalfall, wenn nur ein Remote da ist, sollte der git push dementsprechend automatisch funktionieren. An der Stelle werde ich nach meinem Passwort gefragt, um sicherzustellen, dass ich auch Zugang habe. Nun tritt ein erwartetes Verhalten ein. Dadurch dass der lokale Hauptstrang in dem ich aktuell versioniere, nicht mit dem Hauptstrang auf dem Remote verknüpft ist, muss ich nun noch den entsprechenden Namen des Branches angeben. Dies funktioniert mit einem zweiten Parameter, dem Branch. Auch hier werde ich nun nach dem Passwort gefragt, bestätige mit Enter, Nun wurde der Master Branch aus meinen lokalen Repository mit dem Master Branch im Remote Repository verknüpft, und jeder zukünftige git push Befehl geht nun automatisch. Mit der grafischen Oberfläche funktioniert das, indem über TortoiseGit und dem Befehl Push dementsprechend auch hier der Name des neuen Remote Branches angegeben wird, und durch Bestätigung mit OK wird auch hier der Push durchgeführt, nach der Eingabe des Passwortes. Dieser Vorgang kann nun auch noch im Webinterface nachvollzogen werden. Im Webinterface sieht man nun also, dass all die Änderungen die bis jetzt in dem Repository stattgefunden haben, auch auf dem Remote Repository bekannt sind. Das bedeutet, alle Commits werden, auch die lokal stattfinden, nachträglich an das Repository geliefert. Im Repository selbst kann man nun auch navigieren und entsprechende Aktionen durchführen. Grundsätzlich ist es gerade in diesem Webinterface möglich, fast alles, was man auch lokal machen kann, wie Dateien editieren, Unterschiede feststellen und die Historie von Dateien betrachten, auch mit diesem Webinterface durchführen. An dieser Stelle verändere ich nun eine der Dateien entferne ein Zeichen, mache einen Commit, vergebe eine Nachricht, und damit steht im Remote Repository nun eine neue Version zur Verfügung. Mit Hilfe eines Pulls kann ich nun genau diese Änderung nun vom Remote Repository herunterladen. Diese Änderung könnte beispielsweise auch ein anderes Teammitglied mit einem entsprechendem Push hervorgerufen haben. Der Vorgang git pull kombiniert dabei auch das Merging automatisch. Das bedeutet, wenn es Änderungen an Dateien gibt, die mit meinen Änderungen zusammengeführt werden müssen, findet dies automatisch statt. Mit git pull und dem Namen des Remotes und der Entertaste kann nun nach Eingabe des Passworts entsprechend die Änderungen übernommen werden. Mit dem Befehl git pull origin und dem Namen des Branches kann nun der dementsprechende Änderungsverlauf übernommen werden. Nun wurde automatisch angezeigt, dass sich eine Datei verändert hat, es handelt sich um einen Fast Forward Merge, da in der Zwischenzeit niemand anderes einen Commit durchgeführt hat auf meinem lokalen Repository und dementsprechend ist nun der aktuellste Stand vorhanden. Mit der grafischen Oberfläche funktioniert das über TortoiseGit und dem Befehl Pull. Hier muss sichergestellt sein, dass der korrekte Branch ausgewählt wurde, das kann man auch noch mal mit einer Übersicht nachvollziehen, Hier würde man alle Branches sehen, die in dem Remote Repository Origin vorhanden sind. Durch Bestätigung von OK werde ich nun wieder nach dem Passwort gefragt, und bestätige wieder mit OK. Auch hier wurde eine Datei verändert, und die dementsprechenden Veränderungen wurden übernommen. Ganz praktisch ist an der Stelle noch, dass man sich die Änderungen hier nochmal genauer anschauen kann. So ist es dann auch beispielsweise möglich, für einzelne Dateien Revisionen zu vergleichen und den Unterschied zu sehen. In diesem Video haben Sie nun also gelernt, was ein Remote ist, und wie Sie mit Hilfe von Pushing und Pulling die Inhalte Ihres lokalen Repositorys auf ein Remote Repository übertragen können.

Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:18.09.2014

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!