262 Stimmen

Dateien, die direkt nach einem Git-Klon als geändert angezeigt werden

Ich habe gerade ein Problem mit einem Repository, und obwohl ich normalerweise gut mit Git umgehen kann, scheine ich dieses Problem nicht lösen zu können.

Wenn ich dieses Repository klone, dann cd in das Repository, git status zeigt mehrere Dateien als geändert an. Hinweis: Ich habe das Repository nicht in einem Editor oder ähnlichem geöffnet.

Ich habe versucht, diese Anleitung zu befolgen: http://help.github.com/dealing-with-lineendings/ aber das hat bei meinem Problem überhaupt nicht geholfen.

Ich habe versucht git checkout -- . viele Male, aber es scheint nichts zu bewirken.

Ich arbeite mit einem Mac, und im Repository selbst gibt es keine Submodule.

Das Dateisystem ist ein "Journaled HFS+" Dateisystem auf dem Mac und unterscheidet nicht zwischen Groß- und Kleinschreibung. Die Dateien sind einzeilig und jeweils etwa 79 KB groß (ja, Sie haben richtig gehört), so dass ein Blick auf git diff ist nicht besonders hilfreich. Ich habe gehört, dass man git config --global core.trustctime false Das werde ich ausprobieren, sobald ich wieder an meinem Computer mit dem Repository bin.

Ich habe Details des Dateisystems mit Fakten geändert! Und ich versuchte die git config --global core.trustctime false Trick, der nicht sehr gut funktioniert hat.

1voto

Kyle Smith Punkte 31

Das Problem für mich ist, dass mein MacBook nicht durch das Gehäuse verfolgt wurde. Ich habe eine APFS-Partition "Workspace" erstellt, die Groß- und Kleinschreibung berücksichtigt. Danach bekam ich die Statusfehler nicht mehr.

1voto

Lukas Zech Punkte 485

Bei neuen Versionen von macOS kann dies durch eine Sicherheitsfunktion des Betriebssystems verursacht werden.

In dem Repository, an dem ich gearbeitet habe, gab es eine Binärdatei mit dem Dateityp *.app.

Es handelte sich nur um einige serialisierte Daten, aber macOS behandelt alle *.app-Dateien als Anwendung, und da diese Datei nicht vom Benutzer heruntergeladen wurde, hielt das System sie für unsicher und fügte die com.apple.quarantine Dateiattribut, das dafür sorgt, dass die Datei nicht ausgeführt werden kann.

Aber das Setzen dieses Attributs für die Datei änderte auch die Datei und wurde daher im Git-Änderungssatz angezeigt, ohne dass eine Möglichkeit bestand, es rückgängig zu machen.

Sie können prüfen, ob Sie das gleiche Problem haben, indem Sie $ xattr file.app .

Die Lösung ist ziemlich einfach, solange Sie nicht mit der Datei arbeiten müssen. Fügen Sie einfach *.app binary zu Ihrem .gitattributes .

1voto

Thomas Aylott Punkte 899

Ich habe versucht, ein interaktives Rebase durchzuführen, aber es wurde behauptet, es gäbe einige geänderte Dateien, so dass ich es im Moment nicht tun kann. Ich habe versucht alles um zu einem sauberen Repository zurückzukehren, aber nichts hat funktioniert. Keine der anderen Antworten hat geholfen. Aber das hier hat endlich funktioniert...

git rm -rf the-folder-with-modified-stuff
git ci -m 'WAT'

Bumm! Sauberes Repository. Problem gelöst. Dann musste ich nur noch den letzten Commit löschen, als ich meine rebase -i und endlich war alles wieder sauber. Bizarr!

1voto

Pramod Kharade Punkte 1739

Bearbeiten Sie die Datei mit dem Namen .git/config :

sudo gedit .git/config

Oder:

sudo vim .git/config

Inhalt

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true

[remote "origin"]
    url = kharadepramod@bitbucket.org:DigitalPlumbing/unicorn-magento.git
    fetch = +refs/heads/*:refs/remotes/origin/*

[branch "master"]
    remote = origin
    merge = refs/heads/master

[branch "productapproval"]
    remote = origin
    merge = refs/heads/productapproval

Ändern Sie filemode=true in filemode = false .

1voto

Oleg Shvetsov Punkte 71

Ich habe mein lokales Repository in einen anderen Ordner kopiert, und eine Reihe von geänderten Dateien wurde angezeigt. Mein Workaround war: Ich habe die geänderten Dateien versteckt und das Versteck gelöscht . Das Repository wurde sauber.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X