Git: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Keine Bearbeitungszusammenfassung |
Frank (Diskussion | Beiträge) Git Pro Book URL |
||
| (8 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
[[GIT|Git]] ist ein [[Versionsverwaltung|Versionsverwaltungssystem]]. Es wird verwendet um | {{TOCRight}}[[GIT|Git]] ist ein [[Versionsverwaltung|Versionsverwaltungssystem]]. Es wird verwendet um | ||
* Änderungen am Projekt zu protokollieren und diese zu archivieren. | * Änderungen am Projekt zu protokollieren und diese zu archivieren. | ||
* Ältere Versionen wiederherzustellen. | * Ältere Versionen wiederherzustellen. | ||
| Zeile 93: | Zeile 93: | ||
== Repository klonen == | == Repository klonen == | ||
Um ein bestehendes Repository in einen Ordner zu klonen benutzt man den clone Befehl: | [[Datei:gitea_repoUrl.png|right|thumb|500px|In der Repositoryansicht von Gitea sieht man die genauen URLs für das eigene Gruppenrepository in der roten Box.]] | ||
Um ein bestehendes Repository in einen Ordner zu klonen benutzt man den <code>clone</code> Befehl. Dabei kann entweder HTTPS oder SSH als Protokoll verwendet werden. Beachten Sie dazu auch die Anleitungen zum [[Gitea#SSH Key hinzufügen|Hinzufügen eines SSH Keys zu Gitea]] und [[Gitea#HTTPS Kennwort einrichten|Setzen eines HTTPS Kennworts für Gitea]]. | |||
Für HTTPS verwendet man folgenden Aufruf: | |||
git clone https://git.sopranium.de/<semester>/<gruppe>.git | git clone https://git.sopranium.de/<semester>/<gruppe>.git | ||
Für SSH ist der äquivalente Befehl | |||
git clone gitea@git.sopranium.de:<gruppe>/<gruppe>.git | git clone gitea@git.sopranium.de:<gruppe>/<gruppe>.git | ||
| Zeile 105: | Zeile 108: | ||
== Am Repository arbeiten == | == Am Repository arbeiten == | ||
Im Folgenden zeigen wir die grundlegenden Handgriffe, die zur Benutzung von Git notwendig sind. Um tiefer in die Materie einzutauchen empfehlen wir [https://git-scm.com/book/de/v2 | Im Folgenden zeigen wir die grundlegenden Handgriffe, die zur Benutzung von Git notwendig sind. Um tiefer in die Materie einzutauchen empfehlen wir [https://git-scm.com/book/de/v2 Git Pro Book]. | ||
==== Neue Datei ==== | ==== Neue Datei ==== | ||
| Zeile 189: | Zeile 192: | ||
<tr><th><tt>bin</tt></th><td>Die Dateien in diesem Ordner werden automatisch beim [[Compiler|Kompillieren]] erstellt, sie hochzuladen ist also unnötig. Zudem sind auch binäre Dateien dabei die sich beim kompilieren häufig ändern. Da binäre Dateien nicht gemerged werden können wird das zu häufigen Konflikten mit den Commits anderer Teammitglieder führen.</td></tr> | <tr><th><tt>bin</tt></th><td>Die Dateien in diesem Ordner werden automatisch beim [[Compiler|Kompillieren]] erstellt, sie hochzuladen ist also unnötig. Zudem sind auch binäre Dateien dabei die sich beim kompilieren häufig ändern. Da binäre Dateien nicht gemerged werden können wird das zu häufigen Konflikten mit den Commits anderer Teammitglieder führen.</td></tr> | ||
<tr><th><tt>obj</tt></th><td>Siehe <tt>bin</tt>.</td></tr> | <tr><th><tt>obj</tt></th><td>Siehe <tt>bin</tt>.</td></tr> | ||
<tr><th><tt>*.suo</tt></th><td>Die Dateien mit der Endung .suo (''Solution User Options'') beinhalten eine Reihe von Benutzer-spezifischen Einstellungen für [[VisualStudioTutorial|Visual Studio]], die niemanden außer den Benutzer selber interessieren. Sie enthalten außerdem eine Reihe von absoluten Pfadangaben, die bei anderen Benutzern massive Probleme auslösen können. Sie sollen auf keinen Fall zum [[#Repository|Repository]] [[#Working Copy commiten|hinzugefügt]] werden.</td></tr> | <tr><th><tt>*.suo</tt></th><td>Die Dateien mit der Endung .suo (''Solution User Options'') beinhalten eine Reihe von Benutzer-spezifischen Einstellungen für [[VisualStudioTutorial|Visual Studio]], die niemanden außer den Benutzer selber interessieren. Sie enthalten außerdem eine Reihe von absoluten Pfadangaben, die bei anderen Benutzern massive Probleme auslösen können. Sie sollen auf keinen Fall zum [[#Repository|Repository]] [[#Working Copy commiten|hinzugefügt]] werden.</td></tr> | ||
<tr><th><tt>*.cachefile</tt></th><td>Siehe <tt>bin</tt>. Auch merkt sich [[MonoGame]] hier, welche Dateien es schon in ein ihm genehmes Format konvertiert hat. Wenn ein anderes Teammitglied eine neue Datei hinzufügt und diese Datei im <tt>.cachefile</tt> als bereits konvertiert markiert ist, kann es passieren daß sich XNA denkt "Hey die Datei hab ich doch schon" und sie nicht neu konvertiert.</td></tr> | <tr><th><tt>*.cachefile</tt></th><td>Siehe <tt>bin</tt>. Auch merkt sich [[MonoGame]] hier, welche Dateien es schon in ein ihm genehmes Format konvertiert hat. Wenn ein anderes Teammitglied eine neue Datei hinzufügt und diese Datei im <tt>.cachefile</tt> als bereits konvertiert markiert ist, kann es passieren daß sich XNA denkt "Hey die Datei hab ich doch schon" und sie nicht neu konvertiert.</td></tr> | ||
<tr><th><tt>*.thumb</tt></th><td>Von Windows generierte Datei, die Vorschaubilder für die Miniaturansicht im Explorer enthält.</td></tr> | <tr><th><tt>*.thumb</tt></th><td>Von Windows generierte Datei, die Vorschaubilder für die Miniaturansicht im Explorer enthält.</td></tr> | ||
<tr><th><tt>thumbs.db</tt></th><td>Siehe .thumb</td></tr> | <tr><th><tt>thumbs.db</tt></th><td>Siehe .thumb</td></tr> | ||
| Zeile 266: | Zeile 267: | ||
Hat man die Konflikte in dem Tool behoben, fügt Git die Dateien automatisch zur Stage hinzu, so dass man nur noch den merge Commit machen muss. | Hat man die Konflikte in dem Tool behoben, fügt Git die Dateien automatisch zur Stage hinzu, so dass man nur noch den merge Commit machen muss. | ||
= Git | = Git im Softwarepraktikum = | ||
== Git für das Softwarepraktikum vorbereiten == | == Git für das Softwarepraktikum vorbereiten == | ||
Nachdem Sie sich für einen Git-Client entschieden haben, müssen Sie sicherstellen: | Nachdem Sie sich für einen Git-Client entschieden haben, müssen Sie sicherstellen: | ||
* Dass ihr [[Gitea|Zugang zu Gitea]] funktioniert. | * Dass ihr [[Gitea|Zugang zu Gitea]] funktioniert. | ||
* Das Repository Ihrer Gruppe auf ihren [[#Repository | * Das Repository Ihrer Gruppe auf ihren [[#Repository klonen|Rechner klonen]]. | ||
* Ihren [[#Name und Email einstellen|Namen und die Email]] Adresse Git mitteilen. | * Ihren [[#Name und Email einstellen|Namen und die Email]] Adresse Git mitteilen. | ||
* Stellen Sie sicher, dass eine <code>.gitignore</code> Datei mit den Regeln in der unter [[#Dateien Ignorieren|Dateien Ignorieren]] gegebenen Tabelle in ihrem Gruppenrepository im master Branch existiert. | * Stellen Sie sicher, dass eine <code>.gitignore</code> Datei mit den Regeln in der unter [[#Dateien Ignorieren|Dateien Ignorieren]] gegebenen Tabelle in ihrem Gruppenrepository im master Branch existiert. | ||
