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

828

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

Sobald ich ein mache git status, sagt es mir

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

Wenn ich jedoch versuche, Zweige zu wechseln, erhalte ich Folgendes:

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 bringe ich das zum Laufen, damit ich Zweige wechseln kann, ohne diese Dateien zu löschen?

Wenn ich eine Änderung vornehme, hat dies Auswirkungen auf diese Dateien? Mit anderen Worten, wenn ich später zu diesem Zweig zurückkehren würde, wäre alles perfekt, bis zu meinem letzten Commit?

Ich möchte diese Dateien nicht verlieren, ich möchte nur nicht, dass sie verfolgt werden.

Marcamillion
quelle
10
Wenn Sie sich wirklich nicht für diese Dateien interessieren: git checkout -f <branch> in meinem Fall werden die Dateien während des Erstellungsprozesses generiert, also ist es mir egal
Hobbamok
Manchmal passiert es, wenn Sie 'git checkout' durchführen (ohne Filialnamen). Um dies zu beheben, machen Sie 'git checkout branchname'
crafter
Separate, aber kritisch verwandte Frage: Warum tritt dieser Fehler überhaupt auf? Warum kann Git nicht einfach zwischen Zweigen wechseln?
Ahnbizcad
@ahnbizcad Denn wenn Sie an einer neuen Datei arbeiten und jemand in einem anderen Zweig zufällig eine Datei mit demselben Namen festschreibt, wären Sie sauer, wenn git Ihre Version beim Wechseln der Zweige verworfen hätte. Deshalb ist die Flagge -f da.
Matthew Sharp

Antworten:

264

Anscheinend möchten Sie, dass die Dateien ignoriert werden, aber sie wurden bereits festgeschrieben. .gitignore hat keine Auswirkung auf Dateien, die sich bereits im Repo befinden, sodass sie mit entfernt werden müssen git rm --cached. Dadurch --cachedwird verhindert, dass sich dies auf Ihre Arbeitskopie auswirkt, und es wird beim nächsten Festschreiben nur als entfernt markiert. Nachdem die Dateien aus dem Repo entfernt wurden, verhindert der Gitignore, dass sie erneut hinzugefügt werden.

Sie haben jedoch ein anderes Problem mit Ihrem .gitignore. Sie verwenden übermäßig Platzhalter, was dazu führt, dass er weniger übereinstimmt, als Sie erwarten. Ändern Sie stattdessen den .gitignore und versuchen Sie dies.

.bundle
.DS_Store
db/*.sqlite3
log/*.log
tmp/
public/system/images/
public/system/avatars/
Pfeilmeister
quelle
2
Danke ... Ich habe alle Dateien aus dem aktuellen Zweig entfernt und sie gesichert. Dann wechselte der Zweig und legte sie zurück. Das hat funktioniert. Vielen Dank auch für den Tipp auf dem .gitignore
Marcamillion
@marcamillion: Was meinst du mit "das hat funktioniert"? Wenn die Dateien in dem Zweig verfolgt wurden, zu dem Sie gewechselt haben, haben Sie sie mit Ihren Versionen überschrieben, die unterschiedlich sein können ...
Cascabel
1
Ich hatte ein Problem mit einem / build-Ordner, der nicht nachverfolgt werden muss. Also habe ich den lokalen Ordner gelöscht, meine .gitignore-Datei festgeschrieben und dann den anderen Zweig ausgecheckt. Das hat endlich bei mir funktioniert.
Mike S.
16
Ich denke, der erste Teil ist für die Umkehrung dieser speziellen Fehlermeldung. Dieser Fehler besagt, dass sich der Benutzer derzeit in einem Zweig befindet, in dem diese JPG-Dateien nicht verfolgt werden, und der Benutzer versucht, zu einem Zweig zu wechseln, der dies tut. Dies macht also git rm --cachedkeinen Unterschied, diese Dateien sind im aktuellen Zweig nicht vorhanden. Für diesen Fehler muss der Benutzer stattdessen die Antwort von @Greg Hewgill befolgen: "Verschieben Sie sie aus der Arbeitskopie, wechseln Sie die Zweige und verschieben Sie sie zurück".
Studgeek
5
Wie würde man gehen über die Lösung your files would be overwrittenmit , fatal: pathspec 'test/node_modules' did not match any fileswenn ich tun git rm -r --cache test/node_modules? Ich kann wegen der überschriebenen Nachricht nicht ziehen und kann sie nicht entfernen, weil Git sie nicht finden kann (sie sind da)
HMR
1047

WARNUNG: Es werden nicht verfolgte Dateien gelöscht, daher ist dies keine gute Antwort auf die gestellte Frage.

Ich habe diese Nachricht auch getroffen. In meinem Fall wollte ich die Dateien nicht behalten, daher funktionierte dies für mich:

Git 2.11 und neuer

git clean  -d  -f .

älterer git

git clean  -d  -f ""

Wenn Sie auch von git ignorierte Dateien entfernen möchten, führen Sie den folgenden Befehl aus.

SEI GEWARNT!!! DIESES MÖGLICHERWEISE ZERSTÖRT IHR PROJEKT. VERWENDEN SIE NUR, WENN SIE 100% WISSEN, WAS SIE TUN

Git 2.11 und neuer

git clean  -d  -fx .

älterer git

git clean  -d  -fx ""

http://www.kernel.org/pub/software/scm/git/docs/git-clean.html

  • -x bedeutet, dass ignorierte Dateien ebenso entfernt werden wie Dateien, die Git nicht bekannt sind.

  • -d bedeutet, nicht verfolgte Verzeichnisse zusätzlich zu nicht verfolgten Dateien zu entfernen.

  • -f ist erforderlich, um es zum Laufen zu zwingen.

Scott Schafer
quelle
7
Danke, nach dieser Reinigung konnte ich mich wieder erholen;
Alexander Beletsky
139
Seien Sie vorsichtig, wenn Sie git sauber laufen!
Noel
249
Um eine Gesichtspalme zu vermeiden, führen Sie sie zuerst mit der Trockenlaufoption aus, um zu sehen, was sie tun würde: git clean -dfxnodergit clean -dfx --dry-run
Dennis
74
Heiliger Strohsack. Dadurch werden alle Konfigurationsdateien auf meinem xcode gelöscht und das Projekt wird jetzt zu einem Mac-Projekt. Seien Sie sehr vorsichtig, wenn Sie diesen Befehl ausführen. Ich dachte, es würde es nur aus Git entfernen.
Tyegah123
25
Die -xOption tut mir weh
wener
589

Warnung: Dadurch werden die lokalen Dateien gelöscht, die nicht indiziert sind

Erzwinge es einfach: git checkout -f another-branch

Régis
quelle
78
Warnung: Dadurch werden die lokalen Dateien gelöscht, die nicht indiziert sind.
Givanse
Git Clean hat bei mir nicht funktioniert, aber Kraft war genau das, was ich brauchte. Es klebte an diesem Zweig und ich brauchte es nur, um die Zweige zu wechseln.
Simon die Katze
7
Ich wollte nicht, dass die Datei nicht indiziert wurde! +1 für Sie
Ryansstack
Ich habe diesen Fehler error: pathspec 'mybranch' did not match any file(s) known to git.
,,,
2
Das ist die wahre Antwort.
Metamonkey
147

Wenn Sie unter OS X arbeiten, kann dies daran liegen, dass beim Namen einer Datei bestimmte Zeichen geändert wurden. Versuchen Sie, die folgende Konfigurationsoption festzulegen:

git config core.ignorecase true
Mattbasta
quelle
13
Es hat auch unter Windows funktioniert, es sieht so aus, als ob diese Situation in erster Linie aufgrund einer
Falländerung
4
Dies ist genau das Problem, das ich hatte. Ein Dateipfad war in Großbuchstaben unterschiedlich. Windows behandelt dies als gleich, GIT jedoch nicht, was das Problem ist.
Daniel Sokolowski
1
Mein Problem ist beim Auschecken eines anderen Zweigs in Windows 10
aufgetreten
genial! Dies behebt mein Problem, als ich zwischen Tags wechselte
William Añez
1
Es funktioniert auch, wenn Sie es auch versuchen git rebase. Vielen Dank.
user3890355
42

Git teilt Ihnen mit, dass es Dateien (mit dem Namen public/system/images/9/...usw.) erstellen möchte , aber Sie haben bereits Dateien in diesem Verzeichnis, die nicht von Git verfolgt werden. Vielleicht hat jemand anderes diese Dateien zum Git-Repository hinzugefügt, und dies ist das erste Mal, dass Sie zu diesem Zweig gewechselt sind?

Es gibt wahrscheinlich einen Grund, warum diese Dateien in Ihrem developZweig, aber nicht in Ihrem aktuellen Zweig. Möglicherweise müssen Sie Ihre Mitarbeiter fragen, warum das so ist.

Wie bringe ich das zum Laufen, damit ich Zweige wechseln kann, ohne diese Dateien zu löschen?

Sie können es nicht tun, ohne die Dateien irgendwie verschwinden zu lassen. Sie könnten jetzt publicin my_publicoder etwas umbenennen .

Wenn ich danach zu dieser Niederlassung zurückkehren würde, wäre bis zu meinem letzten Engagement alles perfekt?

Wenn Sie Ihre Änderungen festschreiben, verliert Git sie nicht. Wenn Sie Ihre Änderungen nicht festschreiben, wird Git sich sehr bemühen , die von Ihnen geleistete Arbeit nicht zu überschreiben. Darum warnt Git Sie hier in erster Linie (als Sie versuchten, die Zweige zu wechseln).

Greg Hewgill
quelle
Danke für die Erklärung. Ich habe die Dateien gesichert, Zweige gewechselt und zusammengeführt und dann die Dateien im öffentlichen Ordner ersetzt. Das hat funktioniert.
Marcamillion
1
Als ich die Antwort von @ Arrowmaster kommentierte. Dies ist die richtige Antwort auf die Fehlermeldung. Es ist möglicherweise nicht die richtige Antwort für diesen besonders Fragesteller, da seine wirklichen Probleme sein Gitignore zu sein scheinen.
Studgeek
37

Das hat bei mir funktioniert.

 1. git fetch --all
 2. git reset --hard origin/{branch_name}
Chamara Jayalath
quelle
5
Bitte erläutern Sie Ihre Lösung. Siehe stackoverflow.com/help/how-to-answer
user7294900
Hier ist meine Einstellung. Ihre lokale Kopie des Remote-Zweigs enthält irgendwie alle nicht verfolgten Dateien. Sie überprüfen dies, um die ursprünglich nicht beanstandeten Dateien wiederherzustellen. Jetzt können Sie zu anderen Zweigen wechseln
ahnbizcad
2
Aus irgendeinem Grund ist dies die einzige funktionierende Lösung für mich. Danke Kumpel.
Kiwad
Mein Problem gelöst. Danke
Devashis Kant
Vielen Dank, so einfach! Git Reset - Soft Origin / Entwicklung. Wie ich es hasse, diese Zusammenführungskonflikte zu bearbeiten. Dieser Befehl so schön und einfach.
Nine9five
22

Es gibt einen Befehl für diese heikle Aufgabe (dauerhaftes Löschen nicht verfolgter Dateien)

git clean -i

Dann reicht git pulles.

Abhishek Goel
quelle
13

Für diejenigen, die etwas weniger weitreichendes als die Antwort von Scott Schafer brauchen ,

git clean -f

wird wahrscheinlich funktionieren. Ich empfehle dringend zu laufen

git clean --dry-run

zuerst. Dieser Befehl gibt eine Liste von Dateien aus, die Git beim Ausführen entfernt git clean -f, und erspart Ihnen möglicherweise den Schmerz, versehentlich etwas zu entfernen, das Sie nicht wollten.

Weitere Informationen zu finden Sie in dieser Antwort zu Stack Oveflow oder in den Dokumentengit clean .

mc_kaiser
quelle
12

Leider weder git rm --cachednochgit clean -d -fx "" hat es für mich.

Meine Lösung bestand darin, meinen Zweig auf Remote zu verschieben, ein neues Repo zu klonen und dann meine Zusammenführung im neuen Repo durchzuführen. Andere Leute, die auf das Repo zugreifen, mussten dasselbe tun.

Moral der Geschichte: Verwenden Sie eine .gitignoreDatei von Anfang an.

Kyle Clegg
quelle
10

Wenn Sie diese Frage schnell lösen möchten, können Sie diesen Befehl verwenden:

git checkout -f dev
GeekHades
quelle
Dies hat mir geholfen, als mein Problem nicht mit .gitignoreafaik zu tun hatte.
Nakilon
Fehler: pathspec 'dev' stimmte nicht mit Dateien überein, die git bekannt sind.
Schwarz
@ Black 'dev' ist der Name der Filiale, setzen Sie stattdessen Ihre Filiale
Vinit Solanki
8

Ich hatte das gleiche Problem beim Auschecken in einen Zweig aufgrund eines früheren Commits. Git lehnte das Auschecken wegen nicht verfolgter Dateien ab.

Ich habe eine Lösung gefunden und hoffe, dass sie auch Ihnen hilft.

Hinzufügen der betroffenen Verzeichnisse zu .gitignoreund Ausstellen$ git rm -r --cached reicht anscheinend nicht aus.

Angenommen, Sie möchten einen Zweig basierend auf einem früheren Commit K erstellen, um einige Dinge zu testen und zur aktuellen Version zurückzukehren. Ich würde es in den folgenden Schritten tun:

  1. Richten Sie die nicht verfolgten Dateien ein: Bearbeiten Sie die .gitignoreund wenden Sie sie $ git rm -r --cachedauf die Dateien und Verzeichnisse an, die der Git ignorieren soll. Fügen Sie auch die Datei .gitignoreselbst hinzu .gitignoreund vergessen Sie nicht, sie auszugeben $ git rm -r --cached .gitignore. Dadurch wird sichergestellt, dass das Ignorierverhalten von git bei früheren Commits gleich bleibt.

  2. Übernehmen Sie die Änderungen, die Sie gerade vorgenommen haben:

    $ git add -A
    $ git commit

  3. Speichern Sie das aktuelle Protokoll, da sonst Probleme auftreten können, wenn Sie zur aktuellen Version zurückkehren

    $ git log > ../git.log

  4. Hard Reset auf das Commit K.

    $ git reset --hard version_k

  5. Erstellen Sie einen Zweig basierend auf dem Commit K.

    $ git branch commit_k_branch

  6. Kasse in diesen Zweig

    $ git checkout commit_k_branch

  7. Mach deine Sachen und begebe sie

  8. Kasse wieder in den Master

    $ git checkout master

  9. Auf die aktuelle Version zurücksetzen

    $ git reset current_version oder $ git reset ORIG_HEAD

  10. Jetzt können Sie hart auf den KOPF zurücksetzen

    git reset --hard HEAD

HINWEIS! Überspringen Sie nicht den vorletzten Schritt (wie z. B. $ git reset --hard ORIG_HEAD ), da sonst die oben beanstandeten nicht verfolgten Dateien verloren gehen.

Ich habe auch dafür gesorgt, dass die beanstandeten Dateien nicht gelöscht wurden. Ich habe sie in eine Textdatei kopiert und den Befehl ausgegeben$ for i in $(cat ../test.txt); do ls -ahl $i; done

Wenn Sie erneut in den oben genannten Zweig auschecken, vergessen Sie nicht, eine Ausgabe durchzuführen, $ git statusum sicherzustellen, dass keine unerwünschten Änderungen angezeigt werden.

Juri Sinitson
quelle
8

Dies passierte mir auf einem Windows 8- System mit Git über die Eingabeaufforderung. Der Rest meines Teams verwendet TFS und ich verwende Microsoft git-tf , um zwischen TFS und meinem lokalen Git-Repository zu pushen / ziehen.

Das Problem trat aufgrund einiger Dateien auf, die nur umbenannt wurden, um ihren Fall zu ändern . Was passiert zu sein scheint, war Folgendes:

  • Die Dateien wurden mit einem gemischten Gehäuse in ihren Namen eingecheckt.
  • In einem späteren Commit wurden die Dateinamen in Kleinbuchstaben geändert.
  • git-tf hat die Dateien zunächst in gemischter Schreibweise erhalten.
  • Als die Dateien in Kleinbuchstaben umbenannt wurden, hat git-tf die Dateien nicht erhalten, da diese Dateinamen für Windows 8 gleichwertig sind.
  • Da Git zwischen Groß- und Kleinschreibung unterscheidet, wurde beanstandet, dass ich Dateien mit gemischten Groß- und Kleinschreibung hatte, die nicht in der Quellcodeverwaltung waren. Bei Verwendung von git statuskonnte ich jedoch keine Änderungen feststellen, da diese Dateinamen in der Windows-Eingabeaufforderung gleichwertig sind.

Die einfachste Lösung für mich war:

  • git checkouteine frühere Version des Projekts, lange bevor diese Dateien jemals hinzugefügt wurden .
  • Dann git checkoutdie neueste Version des Projekts mit der richtigen Datei.
Ryan Lundy
quelle
+1 Ich konnte das Git-Protokoll für den aktuellen Zweig und den Zweig verwenden, um erneut zu ermitteln, wann das Festschreiben stattgefunden hat, das den Fall geändert hat. dann habe ich es gehackt ...
Salbei
4

Diese beiden Funktionen (git rm --cached, git checkout -f ein anderer Zweig) haben bei mir NICHT funktioniert.

Stattdessen habe ich die Datei (in Eclipse) physisch entfernt, wie es Git Ihnen vorschreibt. Bitte verschieben oder entfernen Sie sie, bevor Sie die Zweige wechseln können.

und dann füge ich es hinzu / habe es festgeschrieben.

und dann habe ich gezogen und es hat funktioniert!

In-Young Choung
quelle
4

In meinem Fall lag das Problem bei den Submodulen. masterwurde mit einem anderen Zweig zusammengeführt, der dem Projekt ein neues Submodul hinzufügte. Der Zweig, den ich auschecken wollte, hatte ihn nicht, deshalb beschwerte sich git über nicht verfolgte Dateien und keine der anderen vorgeschlagenen Lösungen funktionierte für mich. Ich zwang die Kasse zu meiner neuen Filiale und zog den Meister.

  • git checkout -f my_branch
  • git pull origin master
  • git submodule update --init
Bruno Pinheiro
quelle
3

In meinem Fall git rm --cachedhat es nicht funktioniert. Aber ich habe es mit einemgit rebase

Hillkorn
quelle
3

Ich hatte auch ein ähnliches Problem und habe alle oben genannten Lösungen ausprobiert, aber es hat nicht funktioniert

Das Problem wurde verursacht , wenn i umbenannt meine onMusicUpdateListener.javazu OnMusicUpdateListener.javain developZweig.

masterHatte onMusicUpdateListener.java und develophatte jetzt die gleiche Datei wieOnMusicUpdateListener.java

Wann immer ich zum Master wechselte, gab es mir einen Fehler

The following untracked working tree files would be overwritten by checkout

und dann es aborted.

Um dies zu lösen, ich gewaltsam checked out masterverzweigen und dann meine umbenannt onMusicUpdateListener.javazu OnMusicUpdateListener.java, committedes und dann mergedes mit developZweig.

Dann aktualisiert ich meine developZweig durch mergingsie in masterund jetzt ist alles wieder normal und Problem gelöst ist.

Sheraz Ahmad Khilji
quelle
Ich bin schon auf ähnliche Probleme gestoßen. Nach meinem Verständnis scheint das Problem der Groß- und Kleinschreibung nur unter Windows ein Problem zu sein. Ich denke du entwickelst unter Windows?
Ji_in_coding
2

Dies könnte ein Berechtigungsproblem sein.

Eigentümer wechseln,

sudo chown -v -R usr-name:group-name folder-name
Jun Bae gewonnen
quelle
Ich hatte auch das gleiche Problem wie Won. Ich habe einem Ordner, der bereits verfolgt wurde, einen Gitignore hinzugefügt. Ich habe die Datei gelöscht und konnte dann einen Git-Checkout durchführen.
cbloss793
2

Möglicherweise liegen 2 Dateien mit demselben Namen, aber unterschiedlicher Groß- und Kleinschreibung vor.

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

Pdf.html.twig (The GOOD one)

pdf.html.twig (The one I deleted)
Samuel Vicent
quelle
2

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
gmatht
quelle
1

Wenn Sie eine Datei lokal umbenannt haben und dann eine ausführen pull, wird diese Fehlermeldung angezeigt.

lyuboslav kanev
quelle
Wie komme ich in diesem Fall über diesen Fehler hinweg? Diese Meldung wird auch angezeigt, wenn nach dem Ändern des Falls in einem Dateinamen (MyFile => myfile) die Zweige gewechselt werden.
Bernhard Döbler
1

Das ist einfach zu lösen. Git sagt, dass Sie in beiden Zweigen dieselben Dateien haben. Daher müssen Sie die spezifischen Dateien aus dem Hauptzweig löschen und dann können Sie Folgendes zusammenführen:

git merge "dein Zweig"

Ich hoffe es funktioniert bei dir, ich habe gerade meinen Fehler behoben. Mein Fehler war:

Fehler: Die folgenden nicht verfolgten Arbeitsbaumdateien werden beim Zusammenführen überschrieben: .vs / slnx.sqlite Bitte verschieben oder entfernen Sie sie, bevor Sie sie zusammenführen. Abbruch

Jetzt funktioniert es! In meinem Fall, dass .vs / slnx.sqlite von Visual Studio generiert wurde, musste ich es schließen, bevor ich es löschte.

jeirueda
quelle
0

In meinem Fall wurde dieser Fehler angezeigt, weil ich ein beliebtes Open Source-CMS verwende und das Verzeichnis, das Probleme verursachte, das Upload-Verzeichnis war, in das das CMS schreibt.

Es wurde also gesagt, dass es Dateien gibt, die Sie nicht haben, die Sie aber nicht durch die Versionierung erhalten können.

Ich greife nach allen Dateien von der Live-Site zu meiner lokalen Site und überprüfe dies im Repo in der Hoffnung, dass dies das Problem behebt.

Markosaurus
quelle
0

Löschen Sie die .gitignore- Datei aus appname / gen / , um dieses Problem zu beheben .

vishnuc156
quelle
0

Ich ging einfach zum Dateisystem und löschte die Datei direkt, dann fuhr ich mit dem Auschecken von Git fort und es funktionierte.

Ich habe das Problem mehrmals auftreten lassen und es kann mit Entwicklern zusammenhängen, die Löschen, Pushen, erneutes Hinzufügen, Pushen oder ähnliches ausführen.

Phil Carter
quelle
0

Die meisten Antworten beziehen sich auf das Löschen oder Entfernen der Dateien, was der einfache Weg ist. Aber manchmal möchten Sie die lokalen Dateien nicht loswerden. Aber verschmelzen Sie mit einer Strategie, damit Git auch dafür eine Lösung hat.

git merge --strategy=ours master 
Erdinç Çorbacı
quelle
0

Löschen Sie einfach die Dateien oder benennen Sie sie um.

z.B

$ git pull
Enter passphrase for key '/c/Users/PC983/.ssh/id_rsa':
error: Your local changes to the following files would be overwritten by merge:
        ajax/productPrice.php
Please commit your changes or stash them before you merge.
error: The following untracked working tree files would be overwritten by merge:
        ajax/product.php
Please move or remove them before you merge.
Aborting
Updating a04cbe7a..6aa8ead5

Ich musste ajax / product.php und ajax / produtPrice.php umbenennen / löschen .

Mach dir keine Sorgen, Git Pull wird sie zurückbringen. Ich empfehle Ihnen, sie umzubenennen, anstatt sie zu löschen, da Sie möglicherweise einige Änderungen verlieren.

Wenn dies nicht hilft, müssen Sie den gesamten Zweig löschen und erneut erstellen und dann tun git pull origin remotebranch

Schwarz
quelle
0

Um die geänderten Dateien zu speichern und den geänderten Inhalt später zu verwenden. Ich habe diesen Fehler gefunden, als ich versucht habe, einen Zweig auszuchecken und beim Versuch, ihn neu zu starten. Versuchen Sie Git Stash

git stash

MöĦämëđ ÏbŗäĦïm
quelle
0

Überprüfen Sie, ob ein Ordnername mit '/' oder einem speziellen Symbol versehen ist, und benennen Sie diese Ordner um. Dann klonen Sie das Repository einfach an einen anderen Speicherort.

Codemaker
quelle
0

Eine einfache Lösung könnte sein: Stellen Sie einfach sicher, dass Sie sich im richtigen Arbeitsverzeichnis in befinden GitBash. Diese Nachricht tritt fast jedes Mal auf, wenn ein Benutzer versucht, ein zu hohes Verzeichnis in seiner Ordnerhierarchie zusammenzuführen.

Beispiel:

/workspace/git/myBashSourceFolder/myProjectSourcefolder

Szenario: Der Benutzer hat das Repo geklont. git-folderEr hat ein neues Java-Projekt in Eclipse erstellt und das geklonte Repo importiert. Eclipse hat myProjectSourceFolder in seinem lokalen Projekt als Quellordner festgelegt. Daher hat der Benutzer es in Git Bash eingegeben und sein Projekt von dort aus gedrückt, gezogen und festgeschrieben. git synchronisiert daher myProjectSourceFolder- hat aber keine Aufzeichnung in seiner Geschichte für myBashSourceFolder. Daher erzeugt ein Push / Pull / Merge von myBashSourceFolder die angegebene Ausgabe, wenn der Benutzer beim nächsten Mal versucht, von dort aus zu synchronisieren, anstelle des Ordners, den er zuvor bearbeitet hat.

Lösung: Geben Sie den richtigen Ordner ein und versuchen Sie es erneut. In fast jedem Fall hat diese Lösung gut funktioniert :)

mZed
quelle