983 Stimmen

.gitignore und "Die folgenden nicht verfolgten Arbeitsbaumdateien würden beim Auschecken überschrieben werden"

Also habe ich einen Ordner zu meiner .gitignore-Datei hinzugefügt.

Sobald ich eine git status es sagt mir

# On branch latest
nothing to commit (working directory clean)

Wenn ich jedoch versuche, die Zweige zu ändern, erhalte ich folgende Meldung:

My-MacBook-Pro:webapp marcamillion$ git checkout develop
error: The following untracked working tree files would be overwritten by checkout:
    public/system/images/9/thumb/red-stripe.jpg
    public/system/images/9/original/red-stripe.jpg
    public/system/images/8/thumb/red-stripe-red.jpg
    public/system/images/8/original/red-stripe-red.jpg
    public/system/images/8/original/00-louis_c.k.-chewed_up-cover-2008.jpg
    public/system/images/7/thumb/red-stripe-dark.jpg
    public/system/images/7/original/red-stripe-dark.jpg
    public/system/images/7/original/DSC07833.JPG
    public/system/images/6/thumb/red-stripe-bw.jpg
    public/system/images/6/original/website-logo.png
    public/system/images/6/original/red-stripe-bw.jpg
    public/system/images/5/thumb/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/5/original/logocompv-colored-squares-100px.png
    public/system/images/5/original/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/4/thumb/DSC_0001.JPG
    public/system/images/4/original/logo.png
    public/system/images/4/original/DSC_0001.JPG
    public/system/images/4/original/2-up.jpg
    public/system/images/3/thumb/logo2.gif
    public/system/images/3/original/logo2.gif
    public/system/images/3/original/Guy_Waving_Jamaican_Flag.jpg
    public/system/images/3/original/11002000962.jpg
    public/system/images/2/thumb/Profile Pic.jpg
    public/system/images/2/original/Profile Pic.jpg
    public/system/images/2/original/02 Login Screen.jpg
    public/system/images/1/original/Argentina-2010-World-Cup.jpg
Please move or remove them before you can switch branches.
Aborting

So sieht meine .gitignore-Datei aus:

.bundle
.DS_Store
db/*.sqlite3
log/*.log
tmp/**/*
public/system/images/*
public/system/avatars/*

Wie kriege ich das hin, dass ich den Zweig wechseln kann, ohne diese Dateien zu löschen?

Wenn ich eine Änderung vornehme, hat das Auswirkungen auf diese Dateien? Mit anderen Worten, wenn ich danach zu diesem Zweig zurückkehre, ist dann alles perfekt bis zu meinem letzten Commit?

Ich will diese Dateien nicht verlieren, ich will nur nicht, dass sie zurückverfolgt werden.

48 Stimmen

Wenn Ihnen diese Dateien wirklich egal sind: git checkout -f <branch> in meinem Fall werden die Dateien während des Erstellungsprozesses generiert, so dass ich mich nicht weniger darum kümmern könnte

0 Stimmen

Das passiert manchmal, wenn man 'git checkout' (ohne Branch-Namen) ausführt. Um dies zu beheben, führen Sie 'git checkout branchname' aus.

2 Stimmen

Separate, aber kritisch verwandte Frage: Warum tritt dieser Fehler überhaupt auf? Warum kann Git nicht einfach zwischen Zweigen wechseln?

3voto

Ich stand auch vor einem ähnlichen Problem und habe alle oben genannten Lösungen ausprobiert, aber es hat nicht funktioniert

Das Problem wurde verursacht, als ich umbenannt in meine onMusicUpdateListener.java à OnMusicUpdateListener.java sur develop Zweigstelle.

Jetzt master hatte onMusicUpdateListener.javadevelop hatte die gleiche Datei wie OnMusicUpdateListener.java

Immer, wenn ich jetzt zum Master wechsle, bekomme ich eine Fehlermeldung

The following untracked working tree files would be overwritten by checkout

und dann aborted .

Um dieses Problem zu lösen, habe ich mit Gewalt checked out master Zweigstelle und benannte dann meine onMusicUpdateListener.java à OnMusicUpdateListener.java , committed es und dann merged es mit develop Zweigstelle.

Dann habe ich meine develop Zweigstelle von merging es in master und jetzt ist alles wieder normal und das Problem ist gelöst.

3voto

Hillkorn Punkte 623

In meinem Fall git rm --cached hat nicht funktioniert. Aber ich habe es mit einer git rebase

3voto

jeirueda Punkte 113

Das ist einfach zu lösen, Git sagt, dass Sie die gleichen Dateien in beiden Zweigen haben, daher müssen Sie die spezifischen Dateien aus dem Master-Zweig löschen und dann werden Sie in der Lage sein, zusammenzuführen:

git merge "your branch"

Ich hoffe, es funktioniert bei Ihnen, ich habe gerade meinen Fehler gelöst. mein Fehler war:

error: The following untracked working tree files would be overwritten by merge:
        .vs/slnx.sqlite
Please move or remove them before you merge.
Aborting

Jetzt funktioniert es! In meinem Fall .vs/slnx.sqlite von Visual Studio generiert wurde, musste ich es vor dem Löschen schließen.

2voto

Samuel Vicent Punkte 921

2 Dateien mit demselben Namen, aber unterschiedlicher Groß-/Kleinschreibung könnten das Problem sein.

Sie können eine dieser Dateien löschen oder sie umbenennen. Beispiel:

Pdf.html.twig (The GOOD one)

pdf.html.twig (The one I deleted)

2voto

gmatht Punkte 785

Dateien verschieben, statt löschen

Eine Möglichkeit, das Löschen von Dateien zu vermeiden, besteht darin, sie stattdessen zu verschieben. Zum Beispiel:

cd "`git rev-parse --show-toplevel`"
git checkout 2>&1 | while read f; do [ ! -e "$f" ] || mv "$f" "$f".bak; done

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