Inhalt

Versionierung mit Git

GIT ist ein verteiltes Versionskontrollsystem, das von Einzelpersonen und Teams verwendet wird, um die Entwicklung von Softwareprojekten zu verwalten. Es hilft bei der Nachverfolgung von Änderungen, erleichtert die Zusammenarbeit und ermöglicht es, zu früheren Versionen eines Projekts zurückzukehren.

Installation von GIT

GIT Installieren

Download und Installation von GIT: Besuche git-scm.com und lade die passende Version für dein Betriebssystem herunter.

Authentifizierung mittels GSM

Ein Git Credential Manager ist ein Tool, das dazu dient, die Authentifizierungsinformationen für den Zugriff auf ein Git-Repository sicher zu speichern und zu verwalten. Diese Art von Tool ist besonders nützlich, um die Sicherheit zu erhöhen und gleichzeitig die Benutzerfreundlichkeit bei der Arbeit mit Git-Repositories zu verbessern.

Homebrew installieren

https://brew.sh/

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

brew analytics off

Installieren und Google Analytics für Homebrew ausschalten.

GSM installieren

% brew update
% brew upgrade
% brew installl git-credential-manager

Danach erfolgt die Authentifizierung einfach über Git.

Grundlegendes Arbeiten mit Git

Klonen eines bestehenden Repositories – git clone

% # Klonen eines bestehenden Repostories mittes https
% git clone https://services01.htl-braunau.at/git/hanlch/git-lecture.git

Lokales und Remote-Repository vergleichen – git status

% # Commit-Historie einsehen
% git log HEAD..origin/<branch-name>
%
% # Zusammenfassung der Unterschiede
% git status
% git status origin/main
%
% # Detailliertere Ansicht der Unterschiede
% git diff origin/main

Änderungen vom Remote-Server ins lokale Repository übernehmen –git pull

% # Alle Änderungen übernehmen (main durch den gewünschten branch ersetzen)
% git pull origin/main
%
% # git pull ist eine Kombination aus git fetch und git merge:
% # 1.  Neueste Änderungen vom Server holen 
% #     (lokale Dateien werden nicht verändert)
% git fetch origin
%
% # 2.  Überprüfen der Änderungen 
% git log origin/main
%
% # 3.  Änderungen übernehmen
% git merge origin/main
% git rebase origin/main

Dateien hinzufügen – git add

Fügt Änderungen im Arbeitsverzeichnis zum Staging-Bereich hinzu.

Staging ist ein vorläufiger Schritt vor dem Commit, in dem du festlegst, welche Änderungen in den nächsten Commit einbezogen werden soll

% # Änderungen im Arbeitsverzeichnis zum Staging-Bereich hinzufügen
% touch test.txt
% git add test.txt

Änderungen anmelden – git commmit

% # Alle Änderungen übernehmen
% git commit .

% # Bestimmte Dateien übernehmen
% git commit test.txt

% # Message direkt beim Commit hinzufügen
% git commit -m "blablabla"
% # Texteditor für git umstellen
% git config --global core.editor "nano"git config --global core.editor "nano" 

Änderungen auf dem Remote-Server übernehmen – git push

% # Änderungen vom lokalen Repository auf den Remote-Server übertragen 
% git push origin main

Aufgabe: Arbeiten mit einem bestehenden Repositories

Für die folgenden Übungen wird mit dem Remote-Server https://services01.htl-braunau.at/git/ gearbeitet, auf dem der Git-Service Gitea läuft. Durch das Anmelden auf der Seite mit den Zugangsdaten des Office-Accounts (vorname.nachname) wird ein Benutzer angelegt.

1. Klonen eines Remote-Repositories

Logge dich auf dem Remote-Server ein und erstelle einen Klon des entsprechenden Repositories

4. Änderungen an den lokalen Dateien vornehmen

5.

Erstellen eines neuen Repositories

Um ein neues lokales Repository auf einen Server zu übertragen, ist es erforderlich, ein Remote-Repository auf dem Server zu erstellen und dann das lokale Repository mit diesem Remote-Repository zu verknüpfen.

1. Remote-Repository Erstellen

Zunächst wird ein Remote-Repository auf einem Server oder einer Hosting-Plattform wie GitHub, GitLab oder Bitbucket erstellt. Die Vorgehensweise zum Erstellen eines neuen Repositories variiert je nach Plattform, aber in der Regel gibt es eine Option, dies über die Benutzeroberfläche der Plattform zu tun.

2. Verknüpfung des Lokalen Repositories mit dem Remote-Repository

Nach Erstellung des Remote-Repositories ist das Kopieren der URL des Remote-Repositories notwendig. Danach erfolgt die Verknüpfung wie folgt:

a. Terminal oder Kommandozeile Öffnen

Navigation zum Verzeichnis des lokalen Repositories.

b. Lokales Git-Repository Initialisieren (falls noch nicht geschehen)

Initialisieren ein neues Git-Repositorys in einem vorhandenen oder neuen Ordner.

Dieser Befehl erstellt einen neuen Unterordner namens .git, der alle notwendigen Repository-Dateien enthält und das Verzeichnis zu einem Git-Repository macht.

% # Neues Git-Repository erstellen (branch 'master')
% git init
%
% # Umbenennen des initialen Bereichs in 'main'
% git branch -m main

c. Hinzufügen aller Lokalen Dateien zum Repository

Hinzufügen aller Dateien, die auf den Server hochgeladen werden sollen.

% git add .

d. Initialen Commit Durchführen

Speicherung der Änderungen in einem initialen Commit:

% git commit -m "Initial commit"

e. Remote-Repository Hinzufügen

Verknüpfung des lokalen Repositories mit dem Remote-Repository durch folgenden Befehl. Ersetzung von remote_repository_url durch die URL des Remote-Repositories:

% git remote add origin remote_repository_url

Hierbei ist origin der konventionelle Name für das Haupt-Remote-Repository, aber jeder beliebige Name ist wählbar.

f. Pushen der Commits auf den Server

Hochladen der Commits auf das Remote-Repository:

% git push -u origin main

3. Zukünftige Updates

Nach erfolgreicher Verknüpfung und dem ersten Push können zukünftige Änderungen einfach mit den Befehlen git add, git commit und git push auf das Remote-Repository übertragen werden.

Fortgeschrittene Konzepte

Branching und Merging

Branching

% # Alle Branches des Repositories anzeigen
% git branch
%
% # Auflisten aller Änderungen im bestehenden Branch
% git log

Konfliktlösung

Stashing

Projekt Setup: Initialisiere ein neues GIT-Repository und führe die ersten Commits durch. Branching Übung: Experimentiere mit verschiedenen Branches, führe

Divers