Forum: PC-Programmierung gitignore ignoriert nicht den ganzen ordner


von Johannes (Gast)


Lesenswert?

Hallo,
ich möchte im git Ordner ignorieren. Dazu sind in der gitignore die 
Ordner
out/
.ude/
eingetragen.
der out-Ordner wird auch ignoriert. aber nur eine Datei in .ude wird 
immer als geändert angezeigt. Dort sind auch noch andere dateien drinne, 
welche aber nicht als geändert angezeigt werden. Auch wenn ich im .ude 
ordner eine neue datei hinzufüge, wird diese nicht angezeigt. Als 
geändert wird immer die Datei von der Debugger-oberfläche angezeigt. 
(debug.wsx)

Die datei die als geändert angezeigt wird, hat sich auch geändert, die 
soll aber ignoriert werden, da diese von user zu user unterschiedlich 
ist.

Woran kann das liegen, dass nicht alle dateien ignoriert werden?

Johannes

von M.K. B. (mkbit)


Lesenswert?

Kann es sein, dass die eine Datei unter Sourcekontrolle (getrackt) 
steht. Man kann auch ignorierte Dateien committen und dann werden diese 
auch als geändert angezeigt.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du könntest zusätzlich noch die Datei inklusive Pfad in die .gitignore 
aufnehmen. Das ist zwar eigentlich überflüssig, aber vielleicht hilft 
es ja.
1
.ude/debug.wsx

von Sven B. (scummos)


Lesenswert?

Wie schon gesagt wurde ist eigentlich der einzige Fall wo das passiert, 
dass die Datei schon im Index ist. Dann wird .gitignore nicht verwendet, 
da geht es nur um das hinzufügen neuer Dateien. git rm --cached 
out/debug.wsx löst das Problem iirc.

von M.K. B. (mkbit)


Lesenswert?

Sven B. schrieb:
> git rm --cached out/debug.wsx löst das Problem iirc.

Damit wäre die Datei dann in einem frisch geclonten Repo nicht mehr 
vorhanden.

Ich wollte nur darauf hinweisen, falls das ein Problem sein sollte.

von Sven B. (scummos)


Lesenswert?

Ja gut, anders geht es nicht. Das Feature "die Datei bleibt immer bei 
dieser Version und Änderungen werden ignoriert" gibt es nicht.

von Hdudzevdjfd (Gast)


Lesenswert?

Sven B. schrieb:
> Ja gut, anders geht es nicht. Das Feature "die Datei bleibt immer
> bei dieser Version und Änderungen werden ignoriert" gibt es nicht.

Doch, die gibt es!
1
git update-index --assume-unchanged <file>

von Sven B. (scummos)


Lesenswert?

Interessant. Aber hmmmh, bin nicht so ganz überzeugt, eigentlich hört 
sich das mehr nach Performance-Optimierung an ... das Handbuch sagt

"When the "assume unchanged" bit is on, the user promises not to change 
the file and allows Git to assume that the working tree file matches 
what is recorded in the index."

Das ist eigentlich nicht ganz das gewünschte Feature. Ich glaube das 
Feature macht auch in der genannten Form keinen Sinn.

von Rolf M. (rmagnus)


Lesenswert?

Das denke ich auch. Entweder habe ich ein File, das ignoriert werden 
soll. Dann ist es aber nicht versioniert. Oder ich habe ein 
versioniertes File, dann will ich auch sehen, wenn sich lokal was 
verändert hat.
Wenn wie hier jeder eine eigene lokal erzeugte Version hat, gehört das 
File nicht ins Repo.

: Bearbeitet durch User
von Hdudzevdjfd (Gast)


Lesenswert?

Sven B. schrieb:
> Interessant. Aber hmmmh, bin nicht so ganz überzeugt, eigentlich
> hört
> sich das mehr nach Performance-Optimierung an ... das Handbuch sagt
>
> "When the "assume unchanged" bit is on, the user promises not to change
> the file and allows Git to assume that the working tree file matches
> what is recorded in the index."
>
> Das ist eigentlich nicht ganz das gewünschte Feature. Ich glaube das
> Feature macht auch in der genannten Form keinen Sinn.

Rolf M. schrieb:
> Das denke ich auch. Entweder habe ich ein File, das ignoriert
> werden
> soll. Dann ist es aber nicht versioniert. Oder ich habe ein
> versioniertes File, dann will ich auch sehen, wenn sich lokal was
> verändert hat.
> Wenn wie hier jeder eine eigene lokal erzeugte Version hat, gehört das
> File nicht ins Repo.

Glaubt es oder nicht, es funktioniert und macht das, was der TO möchte. 
Verwende es auch hin und wieder um bspw. Einstellungen nur lokal zu 
ändern und im Repo die default Einstellungen zu belassen.

von Rolf M. (rmagnus)


Lesenswert?

Hdudzevdjfd schrieb:
> Glaubt es oder nicht, es funktioniert und macht das, was der TO möchte.

Ich hab nicht behauptet, es funktioniere nicht, sondern nur, dass es mir 
nicht sinnvoll erscheint, das so zu machen.

> Verwende es auch hin und wieder um bspw. Einstellungen nur lokal zu
> ändern und im Repo die default Einstellungen zu belassen.

Dann würde ich das aber als Template in einem anderen Verzeichnis 
einchecken und nach dem Checkout beim ersten Build-Vorgang oder durch 
ein Skript oder so lokal ans Ziel kopieren.

von tictactoe (Gast)


Lesenswert?

Hdudzevdjfd schrieb:
> Glaubt es oder nicht, es funktioniert und macht das, was der TO möchte.

Ich glaube sofort, dass es "funktioniert". Man sollte sich nur nicht 
wundern, wenn mal was schief geht. Denn es gilt, was im Manual steht: 
'the user promises not to change the file'. Bricht man das Versprechen, 
kriegt man, was man verdient.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.