Git: Unterschied zwischen den Versionen

Aus wiki.sehanka.de
Zur Navigation springen Zur Suche springen
 
Zeile 125: Zeile 125:
</pre>
</pre>
= Unterschied zu file im Repo anschauen
= Unterschied zu file im Repo anschauen
<pre>
git restore .
</pre>
= alle Dateien im aktuellen Verzeichnis wieder herstellen


=Grundlegende, wichtige Workflows=
=Grundlegende, wichtige Workflows=

Aktuelle Version vom 15. Oktober 2021, 11:33 Uhr

Git und Versionsverwaltungssysteme (VCS)[Bearbeiten]

Git[Bearbeiten]

  • Software zur Versionsverwaltung für Software-Projekte
  • arbeitsteilige Softwareprojekte
  • verschiedene Code-Bestandteile pro Entwickler
  • automatisierte Zusammenführung

Versionsverwaltungssysteme[Bearbeiten]

  • prinzipiell ließe sich Git komplett ohne ein Web-Interface oder zentralen Server verwenden
  • "GitHub" (und auch "GitLab", "Bitbucket", ...) ist ein Versionsverwaltungssystem (VCS) hostet kostenlos die OpenSource-Projekte der Entwickler
  • reichert den Funktionsumfang von Git auch zusätzlich an
  • Dank grafischer Darstellung im Browser lässt sich der Entwicklungsprozess von Software-Projekten anschaulich darstellen
  • Außerdem kann ein Großteil der Features, zum Beispiel das „Forken“ eines Projekts, auch durch einen Mausklick ausgeführt werden und benötigt keinen Kommandozeilen-Befehl mehr
  • Änderungen von allen Autoren werden gespeichert
  • über Client-Applikationen für Git, hauptsächlich Kommandozeilen-Tools, können Entwickler ihre Änderungen an einem Projekt zentral einreichen
  • GitHub stellt diese Änderungen ausführlich auf der zugehörigen Webseite dar.
  • Außerdem speichert Git jede Version des Software-Projekts
  • mit Git könnt ihr immer auf die vorherige Version zugreifen
  • Community-Features wie Repository oder einem Entwickler folgen
  • Wiki-Funktionen für jedes Projekt
  • Support-System, um auftretende Probleme bei Nutzern direkt und übersichtlich bearbeiten zu können

Grundlegende Begriffe bzw. Elemente[Bearbeiten]

Repository[Bearbeiten]

  • kann bei GitHub einfach als „Projekt“ verstanden werden
  • Dateien für ein Software-Projekt werden in einem Repository abgelegt

Branch[Bearbeiten]

  • Innerhalb eines Repositories kann es mehrere Versionen einer Software geben. Zum Beispiel eine experimentelle Beta-Version und eine stabile Version für den Produktiv-Einsatz.
  • Jede Version stellt dabei einen Branch („Ast“) des Repositories dar.

Commit[Bearbeiten]

  • „Commit“ nennt sich der Vorgang, wenn eine neue Version eines Branches bei der Versionsverwaltung eingereicht wird. Das heißt, nachdem der Entwickler einen Vorgang an einer Software abgeschlossen hat, „committed“ er die Änderungen.

Pull Request[Bearbeiten]

Hat ein Entwickler einen Bug gefixt oder eine neue Funktion eingebaut, möchte er, dass seine Änderung in das ursprüngliche Projekt einfließt. Deswegen stellt er einen „Pull Request“ an den Administrator des jeweiligen Projekts. Dieser kann sich die Änderungen dann ansehen und entscheiden, ob er den Pull durchführen möchte, oder nicht.

Fork[Bearbeiten]

Da alle öffentlichen Git-Projekte unter OpenSource-Lizenz stehen, kann auch jeder einen eigenen Ableger eines Repositories, einen sogenannten „Fork“, starten. Dort kann jeder privat vor sich hin entwickeln und seine Version am Ende wieder dem ursprünglichen Projekt zuführen (Pull Request stellen) – oder aber einfach eine eigenständige Variante verbreiten.

Grundlegende Befehle[Bearbeiten]

Shellbefehle[Bearbeiten]

  • Shellbefehle im Allgemeinen, um z. B. Ordner anzulegen, Verzeichnisse zu wechseln etc.

Git-spezifische Befehle[Bearbeiten]

git --version

auf dem Rechner installierte Version prüfen

git clone

Projekt wird von GitLab auf lokalen Ordner kopiert (einmalig am Anfang)

git log

= history (schließen mit "q")

git status

= ?

git add Datei

= Änderung einer Datei vormerken (geänderte Datei wird grün)

git add .

= Änderung aller Dateien vormerken (geänderte Datei wird grün)

git reset

= alle vorgemerkten Änderungen/Dateien (git add) wieder entfernen

git reset [FILE]

= bestimmte vorgemerkten Änderungen/Datei (git add) wieder entfernen

git commit

= ?

-m "Erklärung"

= Kommentar zum commit

git merge

= ?

git push

= Änderung auf den Server schieben

git pull

= Aktuelle Version vom Server holen (um damit zu arbeiten)

git diff master [local-file-path]

= Unterschied zu file im Repo anschauen

git restore .

= alle Dateien im aktuellen Verzeichnis wieder herstellen

Grundlegende, wichtige Workflows[Bearbeiten]

Neues Git Repository anlegen[Bearbeiten]

Lokales Verzeichnis anlegen[Bearbeiten]

mkdir ORDNERNAME

Ins neue Verzeichnis wechseln[Bearbeiten]

cd ORDNERNAME

Verzeichnis initialiseren[Bearbeiten]

git init

TBD[Bearbeiten]

touch README.md

TBD[Bearbeiten]

git add README.md

TBD[Bearbeiten]

git commit -m "first commit"

TBD[Bearbeiten]

git remote add origin git@gitlab.i-fabrik.net:sebastian/typo3testpage.git

TBD[Bearbeiten]

git push -u origin master

Lokales Verzeichnis in bestehendes entferntes Git-Repository laden[Bearbeiten]

Voraussetzung(en)[Bearbeiten]

  • Repository existiert auf GitLab

Zu lokalem Projektordner wechseln[Bearbeiten]

cd BESTEHENDER_ORDNER

Lokales Verzeichnis initialisieren[Bearbeiten]

git init

TBD[Bearbeiten]

git remote add origin git@gitlab.i-fabrik.net:sebastian/typo3testpage.git

Alle Dateien zum INDEX hinzufügen[Bearbeiten]

git add .

Alle Dateien zum HEAD hinzufügen[Bearbeiten]

git commit -m "KOMMENTAR"

Dateien zum entfernten Repository senden[Bearbeiten]

  • Änderungen sind jetzt im HEAD
  • nun, Änderungen zum entfernten Repository senden

git push -u origin master

Dateien erzeugen[Bearbeiten]

touch file_A touch file_B touch file_C

Dateien zum Repo hinzufügen und committen[Bearbeiten]

git add file_* git commit -m "version 1"

Repo auf Github erzeugen und Dateien ins remote Repo uploaden[Bearbeiten]

git remote add origin git@github.com:GwenDragon/test.git git push -u origin master

Datei aus lokalem Repo löschen[Bearbeiten]

git rm file_A

lokale Änderung committen und an remote Repo melden[Bearbeiten]

git commit -m "version 2" git push -u origin master

Geänderte Dateien von Lokal zum Repository pushen[Bearbeiten]

1) Änderung einer Datei vormerken

git add DATEINAME

2) Vormerkung überprüfen

git status (vorgemerkte Datei ist grün ansehen)

3) Commit vorbereiten

git commit -m "Erklärung" (Kommentar zum commit)

4) Änderung zum Server übertragen

git push

Neuen "Feature"-Branch erstellen und Änderungen hinzufügen[Bearbeiten]

1) Neuen Branch anlegen

git branch BRANCHNAME

2) Zum neuen Branch wechseln

git checkout

3) Änderungen zum neuen Branch hinzufügen

git push -u origin BRANCHNAME

"Feature"-Branch mit "Master"-Branch mergen[Bearbeiten]

1) Zum Master-Branch wechseln

git checkout master

2) Branch zum Merge vormerken

git merge feature

3) Vormerkung überprüfen

git status (vorgemerkte Datei ist grün ansehen)

4) Commit vorbereiten

git commit -m "Erklärung" (Kommentar zum commit)

5) Änderung zum Server übertragen

git push

Tutorials[Bearbeiten]