Inhalt
- Installation von GIT
- Grundlegendes Arbeiten mit Git
- Klonen eines bestehenden Repositories –
git clone
- Lokales und Remote-Repository vergleichen –
git status
- Änderungen vom Remote-Server ins lokale Repository übernehmen –
git pull
- Dateien hinzufügen –
git add
- Änderungen anmelden –
git commmit
- Änderungen auf dem Remote-Server übernehmen –
git push
- Aufgabe: Arbeiten mit einem bestehenden Repositories
- Klonen eines bestehenden Repositories –
- Erstellen eines neuen Repositories
- Fortgeschrittene Konzepte
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
/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
- Merge bewahrt die ursprüngliche Historie und Kontext der Commits, was zu einer verzweigten und umfassenden Historie führt.
- Rebase sorgt für eine saubere, lineare Historie, kann aber die Originalhistorie verändern und ist potenziell riskanter, wenn Commits schon geteilt wurden.
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
- https://services01.htl-braunau.at/git/hanlch/ksn-5bhels-2023-g1
- https://services01.htl-braunau.at/git/hanlch/ksn-5bhels-2023-g2
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: Erstelle Branches mit
git branch [Branch-Name]
und wechsle mitgit checkout [Branch-Name]
. - Merging: Führe Änderungen aus einem Branch in einen anderen mit
git merge [Branch-Name]
ein.
Branching
% # Alle Branches des Repositories anzeigen
% git branch
%
% # Auflisten aller Änderungen im bestehenden Branch
% git log
Konfliktlösung
- Konflikte treten auf, wenn die gleiche Zeile in einer Datei in verschiedenen Branches unterschiedlich geändert wurde.
- Diese Konflikte müssen manuell gelöst werden, bevor man fortfahren kann.
Stashing
- Beschreibung: Temporäres Speichern von Änderungen, die noch nicht zum Commit bereit sind.
- Anwendung:
git stash
undgit stash apply
zum Wiederherstellen.
Projekt Setup: Initialisiere ein neues GIT-Repository und führe die ersten Commits durch. Branching Übung: Experimentiere mit verschiedenen Branches, führe
- Git