.gitignore (meine ersten Versuche mit git & github)

k3nguruh

Erfahrenes Mitglied
Hallo,

ich versuche mich gerade mit Git & GitHub und dort mit der .gitignore Datei. Irgendwie bekomme ich es nicht gebacken. Habe zwar schon einiges gelesen, aber entweder falsch verstanden oder was weiss ich ....

Ich möchte in der .gitignore alles sperren ausser die Ordner "widget" mit den enthaltenen Ordner bzw. Dateien halt drin
Code:
js/widget/....
js/widget/A/....
js/widget/B/....
css/widget/A/...
css/widget/B/...
content/widget/...
usw. ....

so wie ich das gelesen habe, oder zu mindestens verstanden habe, sollte es mit
Code:
# Erstmal alles sperren #
*
# und wieder freigeben #
!widget/
funktionieren. macht es aber nicht.

Sorry für eine vll banale Frage, aber ich bin am Verzweifeln
 

ComFreek

Mod | @comfreek
Moderator
Das matched nur das widget in dem Ordner, wo die .gitignore enthalten ist.

Versuche mal:
Code:
*
!*/widget/**/*

Das hebt hoffentlich die Sperre für alle Pfade (egal wie tief verschachtelt) unter widget auf. Beachte, dass es nur auf widget innerhalb einer Ordnerhierarche unter derjenigen matched, wo .gitignore enthalten ist. Also so etwas wie "folder/subfolder/widget/test.css" würde trotzdem ignoriert bleiben. Möchtest du diese jedoch behalten, dann versuche statt der obigen zweite Zeile !**/*/widget/**/* zu probieren.
 

k3nguruh

Erfahrenes Mitglied
Hallo,

erstmal Danke für deine Antwort. Leider auch kein Erfolg.
Im Anhang mal ein Test-Projekt. Die Ordner und Txt-Dateien "geheim" sollten nicht hochgeladen werden.
Leider wird gar nichts hochgeladen...

Vll mache ich ja auch was falsch. Mal mein vorgehen. Wie gesagt, bin noch sehr neu in der Materie

1. repositorie über GitHub erstellt mit README, .gitignore und Lizenz
2. git clone https://........./test.git
3. mit Editor die .gitignore angepasst
4. git add .
5. git commit -m ".gitignore angepasst"
6. git push
7. das Testprojekt in den Lokalen Ordner kopiert
8. git add .
9. git commit -m "Initial Projekt"
10. git push

hoffe jetzt nichts vergessen zu haben.
 

Anhänge

  • test.rar
    1,5 KB · Aufrufe: 2

ComFreek

Mod | @comfreek
Moderator
Danke fürs Hochladen des Testordners!
Nachdem ich auch keinen Erfolg hatte mit der .gitignore herumzuspielen, bin ich auf .gitignore exclusion is not working for a single file gestoßen. Dort steht:
It is not possible to re-include a file if a parent directory of that file is excluded.

Ich bin mir nicht mehr sicher, ob dein gewünschtes Ignoriermuster überhaupt von .gitignore unterstützt wird. Wäre es möglich, dass du deine Ordnerhierarchie umstrukturierst?
Typischerweise läuft man mit komplexeren Ignoriermustern auch nur in Probleme: aus Versehen wird dann doch etwas nicht ignoriert und committed; oder etwas wird ignoriert und nicht committed.
 

k3nguruh

Erfahrenes Mitglied
Danke für deine Versuche...

Ich habe jetzt was gefunden, was meinen Wünschen erstmal zusagt. Leicht verändert:
Code:
index.*
_index.*


content/
content_c/
include/


javascript/*
!javascript/framework/
!javascript/widget/
javascript/framework/*
javascript/widget/*
!javascript/framework/*/
!javascript/widget/*/


stylesheet/*
!stylesheet/framework/
!stylesheet/widget/
stylesheet/framework/*
stylesheet/widget/*
!stylesheet/framework/*/
!stylesheet/widget/*/
Vll. kannst du ja nochmal rüberschauen, ob was unnötig ist.

Nochmals Danke für deine Mühen
 

ComFreek

Mod | @comfreek
Moderator
javascript/framework/*
javascript/widget/*
!javascript/framework/*/
!javascript/widget/*/
Diese Ansammlung von Zeilen macht mich ein bisschen stutzig. Ignorierst du damit Dateien in javascript/framework und javascript/widget, aber behälst die Unterordner?

Dasselbe gibt für die vier letzten Zeilen der gesamten .gitignore, die du gepostet hast.
 

k3nguruh

Erfahrenes Mitglied
Hallo,

jepp, in den Ordnern framework und widget sollen nur die darin befindlichen Ordner mit ihren SubOrdnern und Dateien angezeigt werden. Dateien die in framework und widget liegen nicht.
 

ComFreek

Mod | @comfreek
Moderator
Interessant, dieses .gitignore Muster, um das hinzubekommen, kannte ich noch gar nicht :)

Das mit eingerechnet sieht deine .gitignore-Datei gut aus!
 

Neue Beiträge