Navigation überspringen

github

Initialisierung Remote Repository

Die folgenden Ausführungen basieren auf einem bereits existierenden Projekt (Repository) unter github. Registrierte Benutzer können dies in ihrem github Account (https://github.com) wie folgt anlegen:

Initialisieren lokales Repository

In netbeans empfiehlt es sich ein lokales repository mit einem existierenden remote repository zu koppeln. Dafür überführt man ein bestehendes netbeans Projekt in ein lokales repository: rechte Maustaste auf das Projekt im ProjektTree >> Versioning >> Initialize Git Repository

netbeans stellt ein Auswahlfenster zur lokalen Pfadangabe zur Verfügung. Vorausgewählt ist der lokale Pfad zum zuvor gewählten Projekt.

Das Projekt befindet sich jetzt im HEAD-Status.Bestätigen lassen kann man das durch eine balloon-Anzeige via halten auf das Projekt:

Das heißt, es kann in das remote Repository auf https://github.com geschoben werden.Dieses Repository ist noch ohne Quelltext-Inhalt und verfügt default über einen master-Branch. Diesen Branch nutzen wir zur ersten Initialisierung des Projekts mit dem bestehenden Quellcode-Dateien:

 

 

First Push Remote Repository

Das entfernte Projekt wird nun initialisiert mit Quelltext-Dateien.

rechte Maustaste auf das Projekt im ProjektTree >> Git >> Remote >> Push

netbeans öffnet beim ersten push ein Eigenschaftsfenster zur Definition des remote repository. [Bitte beachten: hier nur Beispieldaten]

netbeans benötigt nun noch einen gültigen Branch für den push-Befehl:

Wir wählen nur im ersten push den master-Branch. Für jeden folgenden push erzeugen wir einen separaten Branch um den master-Branch im remote repository sauber zu halten.

click Yes

Das remote repository ist nun im master-Branch initialisiert mit den Projektdaten.

working dir - Erzeugen eines separaten Branches

Im Kern der Arbeit mit git steht das sichere erweitern des Projekts um neue Funktionen. Zum einen übernimmt das Versioning hierbei eine Hauptrolle, da durch git Differenzen zwischen Versionen dargestellt und korrigiert werden können. Zum anderen übernimmt die Trennung in "Test-Branches" eine wichtige Rolle zur Konsistens des Projekts. Es empfiehlt sich pro Arbeitspaket ein Branch anzulegen, in dem lokal beliebig lange und beliebig experimentell gearbeitet werden kann. Dieser Branch isoliert die Änderungen vom master-Branch wodurch dieser sauber bleibt. Ist der Programmierer lokal zufrieden mit seinen Änderungen, so hat er die Möglichkeit seinen TestBranch in das remote repository zu pushen, wo es dann mit gleicher Branch-Bezeichnung neben dem master existiert. Wenn er der Meinung ist, es sollte in den master übernommen werden stellt er einen pullrequest im remote repository. Durch einen solchen Request soll der TestBranch mit dem master vereinigt (engl. merge) werden. Dazu unten mehr. Als erstes erzeugen wir einen lokalen neuen Branch:

rechte Maustaste auf das Projekt im ProjektTree >> Git >> Branch/Tag >> Create Branch

Ab jetzt kann ich zwischen den lokalen Branches hin und her switchen

rechte Maustaste auf das Projekt im ProjektTree >> Git >> Branch/Tag >> Switch Branch

Änderungen durchführen und austauschen

Änderungen, neue Dateien etc. werden ab sofort von netbeans registiert und visualisiert.

Anschließend müssen die Änderungen in den Index gesetzt werden (git - add).

rechte Maustaste auf das Projekt im ProjektTree >> Git >> Add

Der Index wird noch nicht in das remote repository übertragen. Dafür wird ein commit (Bestätigung) durchgeführt.

rechte Maustaste auf das Projekt im ProjektTree >> Git >> Commit

Nun können die Änderungen in das remote repository eingespielt werden. Dafür wird ein push durchgeführt.

rechte Maustaste auf das Projekt im ProjektTree >> Git >> Remote >> Push...

Repository clonen

Häufig benötigt man das Abbild eines bereits bestehenden remote Projekts aus github zur lokalen Verwendungen. Dafür wird gitt clone verwendet.

Im Hauptmenu öffnen wir dafür

Team >> git >> clone

Änderungen nachverfolgen

Änderungen werden sowohl im Quelltext als auch im NavigationsBaum gekennzeichnet:

Quelle: netbeans.org