Git / GitHub

    • Offizieller Beitrag

    GitHub ist ein Onlinedienst welcher eine Oberfläche zur Versionsverwaltung mit Git bereitstellt. Hierüber ist es möglich mit mehreren Personen an einem Projekt zu arbeiten.

    2018 hat Microsoft die Firma erworben und bettet diese in DefOps ein.

    Git ist eine Versionsverwaltung die lokal aber auch auf einem Server installiert werden kann. Somit ist es möglich die Softwareversion zum einen lokal auf dem eigenen PC, aber auch auf einem Server für einen gemeinsamen Zugriff mit anderen zu speichern

    Wozu das ganze? Wenn mehrere Entwickler an einem Projekt arbeiten sollte es eine Steuerung geben, damit eigene Inhalte nicht durch andere überschrieben werden. Bei einem Projekt mit mehreren Entwicklern werden Programmteile separiert (in Module aufgeteilt) und können so unabhängig von der gesammten Software weiterentwicket werden. Wenn dann irgenwann die Entwicklung einen gewissen Refegrad erreicht hat, ist es notwendig eine Version bereit zu erstellen um diese publiziert zu können. Dieses unterstützt das Produkt Git. Man könnte also sagen Git ist ein intiligenter Speicher für Sourcen von Softwareversionen.

    Damit das ganze auch über eine schöne Oberfläche bedienbar wird, wurde GitHub erschaffen. Darüber können Versionen oder Probrammteile herunter- bzw hochgeladen werden.

    Viele Entwickungsplattformen unterstützen auch das direkte speichern der Sourcen direkt auf Git.

    WebSite (EN): https://github.com/

    Blog (EN): https://github.com/blog

    Einführung: https://t3n.de/news/eigentlich-github-472886/

    WebSite Git (DE): https://git-scm.com/downloads

    • Offizieller Beitrag

    Fachbegriffe

    • Ein Repository (kurz Repo; engl. Depot) bezeichnet ein Projekt. Dateien die zu einem Software-Projekt gehören werden in einem Repository gespeichert.
    • Ein Branch (engl. Zweig) bezeichnet eine Version innerhalb eines Repositorys (Projektes). Es kann mehrere Versionen geben. Zum Beispiel eine Beta-Version, eine Test-Version und eine Produktiv-Version.
    • Unter Commit versteht man eine Änderung an mind. einem Objekt (z.B. Datei) einer Version (Branch) welche hochgeladen wird. Dies erfolgt, wenn ein Entwickler seine Entwicklung abgeschlossen hat.
    • Unter Push versteht man übertragen der lokalen Änderungen in eine Version.
    • Unter Pull-Request (kurz Pull; eng. beantragen) versteht man einen Antrag in eine Änderung in die Version übernommen werden kann. Zum Einsatz kommt dieses, wenn es einen Genehmigungs-Workflow braucht oder eine Diskussion über die Änderung angeregt werden soll. Der Prozess ist dabei wie folgt: Entwickler entwicket/ändert eine Funktion und stellt einen Pull-Request, der Projektowner prüft die Änderung und lässt sich ggf. in den Branch (Version eines Projektes) einfließen.
    • Unter Fork (engl. Abzweigung) versteht man eine Kopie eines Repositorys. Somit kann sich jeder Entwickler eine Kopie eines Repositorys ziehen und selbst weiterentwickeln. Über das Pull-Request-Verfahren gibt dann die Möglichkeit die Änderungen wieder in das urstüngliche Projekt zurückzuführen. Es kann aber auch eine neue, eigenständige Variante der Software entstehen.
    • Fetch bezeichnet die Informationen zu einer Änderung Repositorys.
    • Checkout liest einen bestimmten Commit aus.
    • contributen / contribute (engl. mitwirken / Mitwirkende) bezeichnet das Beteiligen an einer Enticklung.
    • issue (engl. Problem) wird dazu verwendet um Fehler aber auch gewünschte Anforderungen an die Software zu beschreiben.
    • Offizieller Beitrag

    Git bedienen

    Git kann auf 4 Arten bedient werden

    • über die Kommandozeile
    • über den Git-Desktop => https://desktop.github.com/
    • über den GitHub
    • über das Einbinden in die Entwickungsplattform (z.B. Visual Studio)

    Kommandos der Kommandozeile

    • git clone [URL]: Git-Repository duplizieren => von Web auf lokalen Computer
    • git init: lokales Git-Projekt initialisieren. Um z.B. dieses auf einen Github hochzuladen
    • git add: Dateien in einer Beobachtungsliste hinzufügen. Zwingend erforderlich, um das Projekt in ein Repository zu laden
    • git commit: Änderungen in eine Version zu speichern.Zwingend erforderlich, um das Projekt in ein Repository zu laden
    • git push: Commits in ein Repository zu übertragen

    Vorgehen um ein Repository (Projekt) anzulegen (über die Konsole)

    • echo "# GitTest" >> README.md
    • git init
    • git add README.md
    • git commit -m "first commit"
    • git remote add origin http://www.e2h.de
    • git push -u origin master

    Vorgehen bei Änderungen (über die Konsole)

    • Projekt forken um das Projekt in die eigene Umgebung (Benutzeraccont) zu bekommen (Web Oberfläche)
    • Projekt clonen um Änderungen ausführen zu können (git clone http://www.e2h.de)
    • Clone öffnen (cd projekt.git)
    • ggf. Inhalte auflisten (ls)
    • Branch erstellen (git checkout -b name-der-aenderung)
    • Branch auflisten (git branch)
    • Änderungen durchführen
    • Änderungen hinzufügen (git add *)
    • Status des Branch anzeigen (git status)
    • Änderung commiten (hochladen) (git commit -m "Bezeichnung der Aenderung")
    • Eigener fork (eigene Kopie) aktualisieren, um sicherzustellen dass der eigene fork (eigene Kopie) aktuell ist
      • Änderungen in den master übernehmen, hierzu zum master wechseln (git checkout master)
      • Auf Änderungen prüfen (git fetch upstream) (git upstream/master)
      • ggf. Änderungen übernehmen (git checkout name-der-aenderung) (git merge master)
    • Eigene Änderungen übernehmen (git push --set-upstream origin name-der-aenderung)
    • Offizieller Beitrag

    Visual Studio und Git

    • Neues Projekt in VS erstellen
      • Rechts unten "Zur Quellcodeverwaltung hinzufügen" aktivieren
    • Quellcodeverwaltung über Git aktivieren
    • VS erstellt ein neues Projekt und legt ein lokales Git an
    • Jede Änderung wird nur in Git gespeichert

    Git-Server

    Wenn man mit mehreren Entwicklern an einem Projekt arbeiten möchte, ist ein Git-Server notwendig. Dann ist es möglich sein lokales Git auf eine gemeinsame Speicherplattform abzulegen.

    GitHub

    Eine Web-Oberfläche zur Bedienung stellt GitHub zur Verfügung.

    • Offizieller Beitrag

    .gitignore

    Manche Dateien sollen in Git nicht hochgeladen werden. Diese können in der Datei .gitignore hinterlegt werden, welche sich im Stammverzeichnis des Repositorys befindet.

    Inhalt könnte zum Beispiel sein:

    • Cache-Files, die sich beispielseise in folgenden Ordnern befinden: /node_modules, /packages, ...
    • Ausgabeverzeichnisse für compilierte Programme: /bin, /out, /target, ...
    • Temporäre Dateien die zum Beispiel bei der Laufzeit generiert werden: .log, .lock, .tmp, ...
    • Versteckte Dateien: .DS_Store, Thumbs.db, ...
    • persönliche IDE-Konfigurationsdateien wie .idea/workspace.xml
    • bei WordPress sind es zum Beispiel Logs, temporäre Dateien, ...
      WordPress Git ignorieren

      *.log

      wp-config.php

      wp-content/advanced-cache.php

      wp-content/backup-db/

      wp-content/backups/

      wp-content/blogs.dir/

      wp-content/cache/

      wp-content/upgrade/

      wp-content/uploads/

      wp-content/mu-plugins/

      wp-content/wp-cache-config.php

      wp-content/plugins/hello.php

      /.htaccess

      /license.txt

      /readme.html

      /sitemap.xml

      /sitemap.xml.gz