Information

An dieser Website wird noch gearbeitet. Keine Garantie für Funktionalität und Inhalt!

Git-FAQ

Oft gestellte Fragen zum Umgang mit Github und Eclipse.

How to con­fi­gure e­clipse?

  1. Open EGit: Window -> Open Perspective -> Other -> Git.
  2. Import project:
    1. Click File.
    2. Click Import.
    3. Click Git.
    4. Click Projects from Git.
    5. Click Next.
    6. Select "Clone URI".
    7. Click Next.
    8. Enter the adress from the repository code page. ("HTTPS clone URL")
    9. Click Next.
    10. Select the branches you want to pull. (You can also pull them later)
    11. Click Next.
    12. Choose a directory to save the local repository.
    13. Click Next.
    14. Choose "Import existing projects".
    15. Click Next.
    16. Click Finish.
  3. Perspective Settings:
    1. Open Java Perspective.
    2. Open Package Explorer.
    3. Click "Open Menu". (Arrow to the bottom)
    4. Select Package Presentation -> Hierarchical.
    5. You now see the package structure as at file explorer.
  4. Git Settings:
    1. Click Menu Window.
    2. Click Preferences.
    3. Click Team.
    4. Click Git.
    5. Click Configuration.
    6. If key "user" is available store your username and your GitHub mail address here. If not add keys "user.name" and "user.email".
In the preferences menu, you can set many different settings. These are documented in the eclipse help (Help -> Help Contents).

How to work with Git­Hub Tools?

  1. The usage of all tools is described in our project workflow wiki page.
  2. In addition to that, you can use issues to discuss the project and ask general questions.

How to cre­ate a Pull Re­quest?

Only possible via the GitHub interface.
  1. Open GitHub-Repository.
  2. Open Tab "<> Code".
  3. Click "(X) branches". (Status line at the top, second field)
  4. Within the concerning branch click "New Pull Request".

How to up­date my lo­cal re­po­si­to­ry?

  1. Open EGit-Perspective.
  2. Open Repositories View.
  3. Right-click on repository name.
    1. Option Fetch from Upstream: Only update the remote branches (the representation of the server branches).
    2. Option Pull: Also update the local branches (the branches where you commit your changes). The two different versions might have to merge.

How to ckeck­out a branch?

  1. Open EGit-Perspective.
  2. Open Repositories View.
  3. Right-click on the branch to checkout.
  4. Click on "Checkout" or "Checkout as New Local Branch" if you checkout a remote branch.

How to write code?

  1. Open Package View.
  2. Open a file by clicking on it.
  3. Edit and save the file.
  4. Observe the Code Conventions.

How to send my chan­ges to Git­Hub?

  1. Open Egit-Perspective.
  2. Open view "Git Staging".
  3. Drop all files you want to commit from "Unstaged Changes" to "Staged Changes".
  4. Write a description of your changes and click to "Commit".
    The changes are now in your local repository.
  5. In Repositories View, right-click on repository name.
  6. Click "Push to upstream".

How to re­view chan­ges?

See our review workflow wiki page for details.

E­xem­pla­ry chat his­to­ry

From 16th October 2014 between Lukas Mentel and Jonas Thelemann.

LogoJonas
Ich verstehe nicht ganz wie man Eclipse auf Github einstellt.
LogoJonas
Wenn ich mich nicht irre, ist eGit (was man doch braucht) schon dabei oder?
GRHCJLukas
Genau.
LogoJonas
Ich kenne mich mit Eclipse noch nicht so aus, ich habe bisher nur ein "Hello World"-Projekt erstellt.
GRHCJLukas
Du öffnest es über Window -> Open Perspective -> Other -> Git.
GRHCJLukas
Es gibt zusätzlich noch ein Plugin für Github.
LogoJonas
Okay, also noch eins? :D
GRHCJLukas
Dieses kann zum Beispiel auch Issues in Eclipse importieren.
LogoJonas
Wie heißt das?
GRHCJLukas
Moment...
LogoJonas
Obwohl ich das dann doch erstmal lieber im Browser mache.
LogoJonas
Hauptsache ich kann da jetzt mal noch was übersetzen :D
GRHCJLukas
Kennst du Dich schon mit git aus?
LogoJonas
Im Webbrowser auf Github kann man sich keine Nachrichten direkt schicken, oder?
LogoJonas
Nicht wirklich ;)
GRHCJLukas
Die Pull-/Push-/Commit-Befehle erreichst du über das Rechtsklick-Kontextmenü.
GRHCJLukas
Ich glaube, Nachrichten kann man sich nur indirekt schicken (wie wir das eben getan haben).
LogoJonas
Okay^^
GRHCJLukas
Ich arbeite übrigens gerade am Inhaltsverzeichnis (ContentBar).
LogoJonas
Gut :)
LogoJonas
Unser Repository habe ich glaube ich schon reinbekommen in Eclipse.
LogoJonas
Kann ich das irgendwie updaten?
LogoJonas
Dass die lokalen Dateien aktualisiert werden.
LogoJonas
Über fetch vielleicht?
LogoJonas
Ich glaube, das hab ich hinbekommen.
GRHCJLukas
Genau!
LogoJonas
:D
GRHCJLukas
fetch aktualisiert nur deine lokalen Branches, pull hingegen auch die working copy.
LogoJonas
Jetzt habe ich die Dateien in der working directory. Wie kann ich meine Bearbeitungen push-requesten?
GRHCJLukas
Den pull request musst du auf Github erstellen.
GRHCJLukas
Den Branch bekommst du mit Rechtsklick -> Push to upstream zu GitHub.
GRHCJLukas
Beim Erstellen des pull requests wählst du dann den betreffenden Branch aus.
LogoJonas
Aber nicht, dass der dann gleich hinzugefügt wird. Der soll ja noch reviewt werden, oder wie geht das?
GRHCJLukas
Über push aktualisierst du nur den betreffenden branch bei Github, nicht den master-branch.
GRHCJLukas
branch master -> Push to upstream -> bei Github wird eine identische Kopie deines lokalen Branches angelegt.
GRHCJLukas
Das Hinzufügen ginge über die Option merge, dann würdest du es ohne pull request direkt in den master schieben.
GRHCJLukas
Deshalb die Option merge nicht benutzen!
LogoJonas
Okay.
LogoJonas
Soll ich jetzt eigentlich einen neuen Branch erstellen? Ich will ja nur andere bearbeiten oder verstehe ich das mit den Branches falsch?
LogoJonas
Ist ein branch nicht eine Kopie des masters?
GRHCJLukas
Doch, erstelle einen neuen Branch.
GRHCJLukas
Ein branch ist am Anfang eine Kopie des masters, solange, bis irgendetwas geändert wird.
LogoJonas
Also muss ich unter HCJ-Website-Builder->Branches->Local mit Rechtsklick einen neuen Branch erstellen?
GRHCJLukas
Genau. master -> Create branch
LogoJonas
also master dc415c1 Merge Pul... usw?
GRHCJLukas
Damit würdest du einen branch wieder in den master überführen.
GRHCJLukas
Nimm stattdessen "Create branch"
GRHCJLukas
Wenn du den branch erstellt hast, pushe ihn erstmal.
LogoJonas
Also auf "local" rechtsklick -> switch to new branch oder wo?
GRHCJLukas
Nein, du musst auf den lokalen branch klicken, aus dem du einen anderen branch erstellen willst.
GRHCJLukas
Also Rechtsklick auf Local/master -> Create branch.
LogoJonas
Finde ich nicht :D
*** Jonas hat einen Screenshot gesendet ***

LogoJonas
Da steht master und irgendwas anderes, ist das egal?
GRHCJLukas
Klicke auf den branch master im Ordner "Local", der bei dir markiert ist, mit der rechten Maustaste.
GRHCJLukas
Ich mache einen Screenshot...
LogoJonas
Okay das meinte ich, nur war ich unsicher, weil da eben nicht master sondern master xyz steht.
GRHCJLukas
Oh, dann habe ich dich falsch verstanden...
LogoJonas
:D
GRHCJLukas
Du brauchst also keinen Screenshot mehr?
*** Jonas hat einen Screenshot gesendet ***

LogoJonas
Wenn du noch einen haben willst^^ :D
LogoJonas
Welche checkboxen soll ich denn aktivieren?
LogoJonas
configure upstream for p&p und checkout new branch. Was bewirken die denn?
GRHCJLukas
Der upstream ist der "Kanal" über den die Informationen zu GitHub übertragen werden.
GRHCJLukas
Die Checkbox bedeutet also:
GRHCJLukas
Gebe diesem branch die Möglichkeit, dass man ihn mit seinem branch bei GitHub verbinden kann.
GRHCJLukas
Ich lasse diese Checkbox immer deaktiviert und konfiguriere den upstream, wenn ich das erste Mal pushe.
GRHCJLukas
Dann wirst du dazu aufgefordert.#
LogoJonas
Okay, gut :)
LogoJonas
Aber checkouten kann ich ruhig oder mache ich da auch was kaputt? :D
GRHCJLukas
Nein. Solange du in deiner working copy keine Dateien geändert hast, machst du nichts kaputt.
GRHCJLukas
Ansonsten ersetzt du deine Änderungen mit dem Inhalt des branches, den du auscheckst.
*** Jonas hat einen Screenshot gesendet ***

LogoJonas
So lassen?
GRHCJLukas
Ja.
GRHCJLukas
Und jetzt direkt den branch einmal pushen.
LogoJonas
Hab.
GRHCJLukas
Sehr gut, hat funktioniert!
LogoJonas
*freu*
GRHCJLukas
Jetzt stell sicher, dass du ihn ausgecheckt hast, und fang an.
GRHCJLukas
Ich kopiere mir mal die komplette Unterhaltung und bastle daraus ein FAQ.
GRHCJLukas
Wenn du nichts dagegen hast...
LogoJonas
Rechtsklick auf den neuen Eintrag in remote tracking und dann checkout as new local branch?
LogoJonas
Okay.
GRHCJLukas
Ja.
GRHCJLukas
Ich erstelle branches immer über den lokalen master, dann muss ich es nur noch pushen.
LogoJonas
Aber der existed schon ... irgendwie logisch :D
GRHCJLukas
Ok.
GRHCJLukas
Dann bist du ja startklar :)
GRHCJLukas
Fängst du heute noch an?
LogoJonas
Ja.
LogoJonas
Wie bearbeite ich den denn jetzt? :D
LogoJonas
Einfach die working directory bearbeiten und dann pushen?
GRHCJLukas
Du musst die Java-Perspektive öffnen.
GRHCJLukas
Dann Menü File -> Import -> Git -> Projects from Git.
GRHCJLukas
Dann Existing local repository.
GRHCJLukas
Dort sollte der HCJ-Editor angezeigt werden. Den wählst du aus.
GRHCJLukas
Dann wählst du "Import existing Projects".
GRHCJLukas
... und klickst Next.
GRHCJLukas
Dann selektierst du erneut den HCJ-Editor und klickst auf "Finish".
GRHCJLukas
Und jetzt rate mal, wie lange ich gebraucht habe, um das rauszufinden, als ich es das erste Mal versucht habe :)
LogoJonas
Okay, hab ich. Sieht gut aus :) Hab mein "Hello World"-Projekt jetzt gelöscht. Sollte aber nur aus dem workspace gelöscht worden sein und sich noch auf der Festplatte befinden oder?
LogoJonas
Jaaaaaaa.... 2 Tage? :D
GRHCJLukas
Eigentlich schon.
LogoJonas
;)
GRHCJLukas
Ich bin mir da aber nicht sicher...
GRHCJLukas
Arbeite seit Monaten nur noch mit Repositories :)
LogoJonas
Merkt man an deinen Kenntnissen :D
GRHCJLukas
Danke :)