Lernpfad:Einführung in Git/7: Unterschied zwischen den Versionen
Jneug (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{NNavigation}} Wenn du dein Projekt im Datei-Explorer öffnest, dann siehst du eine ganze Reihe von Dateien, die neu hinzu gekommen sind. Sie haben die Endun…“) |
Ngb (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
| (8 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
{{NNavigation}} | {{NNavigation}} | ||
Wenn du dein Projekt im Datei-Explorer öffnest, dann siehst du eine ganze Reihe von Dateien, die neu | Wenn du dein Projekt im Datei-Explorer öffnest, dann siehst du eine ganze Reihe von Dateien, die neu hinzugekommen sind. Sie haben die Endungen <code>.class</code> und <code>.ctxt</code>. | ||
Außerdem enthält das Projekt einen versteckten Ordner mit dem Namen <code>.git</code> und eine Datei mit dem Namen <code>.gitignore</code>. | Außerdem enthält das Projekt einen versteckten Ordner mit dem Namen <code>.git</code> und eine Datei mit dem Namen <code>.gitignore</code>. | ||
Wenn du in {{Fork}} einen | [[Datei:Gitea Repository Structure.jpg|center|Dateibaum des Repositories.]] | ||
Wenn du in {{Fork}} einen ''Commit'' machst, dann werden weder der Ordner noch diese Dateien bei den Änderungen angezeigt. Du kannst dies prüfen, indem du eine neue Datei mit dem Namen <code>text.txt</code> in deinem Projektordner erstellst. Öffne dann {{Fork}} und schau nach, was im Bereich "Local Changes" angezeigt wird. | |||
== Das Format von Git-Repositories == | == Das Format von Git-Repositories == | ||
Alle Informationen des Git-Repositories werden komplett im Projektordner im | Alle Informationen des {{Git}}-Repositories werden komplett im Projektordner im Unterordner <code>.git</code> gespeichert. Hier befinden sich die verschiedenen Versionen der Projektdateien und alle Informationen zu ''Commits'', die damit zusammenhängen. Allein das Vorhanden sein des <code>.git</code>-Ordners markiert einen Ordner auf der Festplatte als ein {{Git}}-Repository. Entsprechend darfst du diesen Ordner weder löschen noch manipulieren, da du sonst dein Repository zerstörst. Daher ist der Ordner auch als versteckt markiert. | ||
Der | Der <code>.git</code>-Ordner wird also niemals ''commited'', sondern beim ersten Klonen erzeugt. Daher zeigt {{Fork}} ihn nicht an. | ||
== Dateien ignorieren == | == Dateien ignorieren == | ||
Die <code>.class</code> und <code>.ctxt</code> Dateien gehören nicht zu Git, sondern | Die <code>.class</code> und <code>.ctxt</code> Dateien gehören nicht zu {{Git}}, sondern werden von {{BlueJ}} beim Kompilieren des Projekts erzeugt. Sie sind also Dateien, die mit der Maschine zusammenhängen, auf der das Projekt ausgeführt wurde. Auf einem anderen Computer würden sie vermutlich nicht funktionieren und müssten erneut durch eine Kompilierung erzeugt werden. Daher ist es sinnvoll, diese Dateien aus der Versionsverwaltung auszuschließen. | ||
{{Hinweis|Im Repository sollten nur Dateien liegen, die unabhängig vom Computer sind und die nicht automatisch aus den anderen Dateien erzeugt werden können.}} | |||
Für diesen Zweck gibt es die <code>.gitignore</code> Datei im Repository-Ordner. Verschieb die Datei zum Testen aus dem Ordner an einen anderen Ort. Öffne dann {{Fork}} und schau dir erneut die "Local Changes" an. | |||
Wie du siehst, werden die fehlenden Dateien jetzt als "neu" erkannt. Außerdem wird die <code>.gitignore</code> Datei als "gelöscht" angezeigt. Im Gegensatz zum <code>.git</code>-Ordner ist sie also im Repository gespeichert und ganz normal versioniert. | |||
Verschieb die <code>.gitignore</code> wieder in den Projektordner und öffne sie in einem Texteditor. Die Struktur der Datei ist leicht zu verstehen. | |||
<syntaxhighlight lang="text" line="1"> | |||
# ---> Java | |||
# Compiled class file | |||
*.class | |||
# Log file | |||
*.log | |||
# BlueJ files | |||
*.ctxt | |||
# Mobile Tools for Java (J2ME) | |||
.mtj.tmp/ | |||
# Package Files # | |||
*.jar | |||
*.war | |||
*.nar | |||
*.ear | |||
*.zip | |||
*.tar.gz | |||
*.rar | |||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml | |||
hs_err_pid* | |||
</syntaxhighlight> | |||
Ergänze als Beispiel die Zeile | |||
<pre> | <pre> | ||
test.txt | test.txt | ||
</pre> | </pre> | ||
und speichere die Datei ab. {{Fork}} ignoriert nun die von dir erstellte Datei bei allen weitere Commits. | und speichere die Datei ab. {{Fork}} ignoriert nun die von dir erstellte Datei bei allen weitere ''Commits''. Damit die Änderung erhalten bleibt, könntest du sie nun selbst ''committen''. | ||
Aktuelle Version vom 21. August 2022, 22:39 Uhr
Wenn du dein Projekt im Datei-Explorer öffnest, dann siehst du eine ganze Reihe von Dateien, die neu hinzugekommen sind. Sie haben die Endungen .class und .ctxt.
Außerdem enthält das Projekt einen versteckten Ordner mit dem Namen .git und eine Datei mit dem Namen .gitignore.
Wenn du in Fork einen Commit machst, dann werden weder der Ordner noch diese Dateien bei den Änderungen angezeigt. Du kannst dies prüfen, indem du eine neue Datei mit dem Namen text.txt in deinem Projektordner erstellst. Öffne dann Fork und schau nach, was im Bereich "Local Changes" angezeigt wird.
Das Format von Git-Repositories
Alle Informationen des Git-Repositories werden komplett im Projektordner im Unterordner .git gespeichert. Hier befinden sich die verschiedenen Versionen der Projektdateien und alle Informationen zu Commits, die damit zusammenhängen. Allein das Vorhanden sein des .git-Ordners markiert einen Ordner auf der Festplatte als ein Git-Repository. Entsprechend darfst du diesen Ordner weder löschen noch manipulieren, da du sonst dein Repository zerstörst. Daher ist der Ordner auch als versteckt markiert.
Der .git-Ordner wird also niemals commited, sondern beim ersten Klonen erzeugt. Daher zeigt Fork ihn nicht an.
Dateien ignorieren
Die .class und .ctxt Dateien gehören nicht zu Git, sondern werden von BlueJ beim Kompilieren des Projekts erzeugt. Sie sind also Dateien, die mit der Maschine zusammenhängen, auf der das Projekt ausgeführt wurde. Auf einem anderen Computer würden sie vermutlich nicht funktionieren und müssten erneut durch eine Kompilierung erzeugt werden. Daher ist es sinnvoll, diese Dateien aus der Versionsverwaltung auszuschließen.
Für diesen Zweck gibt es die .gitignore Datei im Repository-Ordner. Verschieb die Datei zum Testen aus dem Ordner an einen anderen Ort. Öffne dann Fork und schau dir erneut die "Local Changes" an.
Wie du siehst, werden die fehlenden Dateien jetzt als "neu" erkannt. Außerdem wird die .gitignore Datei als "gelöscht" angezeigt. Im Gegensatz zum .git-Ordner ist sie also im Repository gespeichert und ganz normal versioniert.
Verschieb die .gitignore wieder in den Projektordner und öffne sie in einem Texteditor. Die Struktur der Datei ist leicht zu verstehen.
# ---> Java
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
Ergänze als Beispiel die Zeile
test.txt
und speichere die Datei ab. Fork ignoriert nun die von dir erstellte Datei bei allen weitere Commits. Damit die Änderung erhalten bleibt, könntest du sie nun selbst committen.
