Git: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Roth (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Roth (Diskussion | Beiträge)
Git in a nutshell
Zeile 1: Zeile 1:
{{Stub}}
{{Stub}}
[[GIT|Git]] ist ein [[Versionsverwaltung|Versionsverwaltungssystem]]. Es wird verwendet um
* Änderungen am Projekt zu protokollieren und dieses zu archivieren.
* Ältere Versionen wiederherzustellen.
* Gemeinsames Arbeiten auf der selben Datenbasis zu ermöglichen.
Wir verwenden Git im Sopra um genau diese Punkte zu ermöglichen. Jede [[Gruppeneinteilung|Gruppe]] erhält ihr eigenes [[#Repository|Repository]] auf [[Gitea]] (einer Plattform ähnlich zu [https://de.wikipedia.org/wiki/GitHub GitHub]), um ihr Projekt zu verwalten.
__TOC__
__TOC__


[[Git]] ist ein [[Versionsverwaltungssystem]]. Es wird verwendet um
= Git in einer Nussschale =
* Änderungen am Projekt zu protokollieren,
Um mit Git arbeiten zu können, ist es wichtig die Prinzipielle Arbeitsweise von Git zu verstehen. Hat man die technische Umsetzung im Hinterkopf, werden die Befehle und Arbeitsweisen um git zu bedienen klarer.
* ältere Versionen wiederherzustellen,
 
* das Projekt zu archivieren,
Git protokolliert und verwaltet ein Dateiverzeichnis und alle Änderungen die an den verwalteten Dateien gemacht werden. Jede Änderung produziert dabei einen neuen "Schnappschuß" - den aktuellen Zustand des Verzeichnisses und der Dateien denen ein HASH (SHA-1) zugeordnet wird. Git kümmert sich darum, dass dies speichereffizient abläuft und verwendet dazu ein speziellen Verzeichniss das <code>.git</code> heißt und in dem verwalteten Dateiverzeichnis liegt. Dieses die gesammte Historie beinhaltende  <code>.git</code> Verzeichnis ist ein Git Repository. Meistens wird aber das verwaltete Verzeichnis synonym als Repository bezeichnet, was wir ab jetzt auch tun. Ein einfaches Repository mit nur einer Datei "README.md" sieht demnach so aus:
* gemeinsames Arbeiten auf der selben Datenbasis zu ermöglichen,
 
* kurz: es ermöglicht mehreren Entwicklern komfortabler an einem Projekt gemeinsam und gleichzeitig zu arbeiten.
.
├── .git
└── README.md
 
Die gesammte Historie des Repository ist also (meistens) lokal vorhanden. Um mit mehreren Personen an dem Repository zu arbeiten, müssen die Teilnehmer es mit einem "remote" Repository synchronisieren.
 
Git arbeitet mit 3 Zuständen. Jede versionierte Datei kann in einem der Zustände sein wobei es nicht sein muss, dass zu einem Zeitpunkt alle Dateien den gleichen Zustand haben.
Die 3 Zustände sind:
 
* committed -> Die Datei ist so wie sie ist im repository gespeichert.
* modified -> Die Datei ist zum letzten gespeicherten Zustand verändert.
* staged -> Die Datei (vorher im "Modified" Zustand oder eine neue Datei) wurde von dem git Benutzer markiert, sodass die Änderungen gespeichert werden sollen.


Wir verwenden [[Git]] im Sopra um genau diese Punkte zu ermöglichen. Jede [[Gruppeneinteilung|Gruppe]] erhält ihr eigenes [[#Repository|Repository]] und wir benutzen [[Gitea]], um ihr Projekt zu verwalten.  
Daneben gibt es auch noch `''untracked files''` dies sind Dateien, die noch nicht in die Versionskontrolle aufgenommen wurden.


[[Subversion]] besitzt eine Client-Server-Architektur, sodass man neben dem Original-[[Subversion]]-Client<ref>[http://subversion.tigris.org/ offizielle Seite] des [[Subversion]]-Projekts</ref> auch einen beliebigen [[Subversion]]-[[#Clients|Client]] verwenden kann.
Grundsätzlich besteht eine [[Versionsverwaltung]] mit [[Subversion]] aus
* einem [[#Repository|Repository]] auf einem zentralen Server, das alle [[#Revision|Revisionen]] des Projekts enthält und
* vielen [[#Working Copy|Working Copies]] auf den Computern der Entwickler, die jeweils nur eine [[#Revision|Revision]] des Projekts zusammen mit den [[#Working Copy bearbeiten|lokalen Änderungen]] des Entwicklers darstellen.


== zentrale Begriffe ==
== zentrale Begriffe ==
Abgerufen von „https://sopranium.de/Git