it-swarm.com.de

Warum bekomme ich "Commit fehlgeschlagen mit Fehler: pathspec ... hat keine Dateien gefunden"?

Ich habe Probleme mit Git.

Ich habe ein Repository, in das ich jede Datei problemlos übergeben kann. Es gibt jedoch eine einzige Datei 'Funder.php', die bei einem Commitversuch anzeigt, dass ein Fehler aufgetreten ist:

Commit failed with error:
pathspec 'application/libraries/Funder.php' did not match any file(s) known to git.

Ich bin ziemlich neu in diesem Bereich und fragte mich, ob jemand helfen könnte?

61
Dario

Dies ist der Fehler, den Sie erhalten, wenn Sie versuchen, auszuführen

git commit <file>

aber <file> wurde noch nicht inszeniert; Mit anderen Worten, Git wurde noch nicht darüber erzählt. Dies ist höchstwahrscheinlich das, was hier passiert. Lauf

git add application/libraries/Funder.php

dann versuchen Sie zu begehen.

40
jubobs

In diesem Beitrag wird darauf hingewiesen, warum dieser Fehler auftritt: https://stackoverflow.com/a/29485441/2769415

Das Dateisystem von Windows unterscheidet meistens nicht zwischen Groß- und Kleinschreibung, daher können Sie .__ nicht umbenennen. eine Datei, indem nur die Großschreibung geändert wird. Stattdessen müssen Sie Verwenden Sie einen temporären Namen dazwischen.

Lösung: Benennen Sie die Datei wieder in die ursprüngliche um, benennen Sie sie dann in einen anderen Namen und dann wieder in den Namen mit der korrekten Großschreibung um. Git wird den Fehler nicht mehr werfen.

Beispiel:

Created FOOBar class.
Renamed it to FooBar and then got the error.
Rename it back to FOOBar.
Rename to FooBarTest.
Rename to FooBar.
Git works now.
52
Daniel Silva

Ich hatte das gleiche Problem in Android Studio, nachdem ich einige Aktivitäten umbenannt hatte. Ich habe versucht, die Dateien hinzuzufügen (git add) und zu verschieben (git mv), half aber nie, und ich erhielt immer wieder dieselbe Nachricht.

Schließlich entschied ich mich, die Klassen in dem Paket zu sichern, in dem sich die problematische Datei in einem separaten Ordner auf meiner Festplatte befand, dann entfernte ich die Dateien aus dem ursprünglichen Ordner und im Terminal:

rm app/src/main/Java/com/path/to/package/with/problematic/files/

Dann das gelöschte Paket über Android Studio neu erstellt und meine Klassen dort kopiert und eingefügt. Danach konnte ich mich ohne Probleme festlegen.

6
Oscar Salguero

Hier ist eine kurze Antwort auf dem schnellsten Weg, dieses Problem zu lösen. Ähnlich wie @ cmbind55 post, aber auf den Punkt.

Problem: Ich habe eine Datei hinzugefügt, die ich später umbenannt habe.

Lösung:

  1. Entfernen Sie den alten Dateinamen

git reset HEAD oldFileName.file

  1. Fügen Sie nun den neuen Dateinamen hinzu

git add newFileName.file

  1. Festlegen und glücklich sein
5
Julian Soro

Ich hatte dieses fehlgeschlagene Commit-Szenario aufgrund eines umbenannten Verzeichnisses.

Dies war das ursprünglich erstellte Verzeichnis mit einem Fehler in der Großschreibung:

application/Templates/lists/index.html

Innerhalb der IDE hatte ich zugestimmt, diese Datei zum vorhandenen Git-Repo hinzuzufügen. __ Bei späteren Tests stellte ich fest, dass bei der Großschreibung von "Templates" ein Pfadproblem auftrat. In der IDE habe ich das Verzeichnis einfach in "Vorlagen" umbenannt (in Kleinschreibung geändert). Ich habe die tatsächliche Reihenfolge der Ereignisse nicht aufgezeichnet, aber als mein Commit mit der folgenden Meldung fehlgeschlagen ist, hatte ich eine Ahnung, dass dies dieses Problem war. Anscheinend hat die IDE diesen Fall der Umbenennung eines Verzeichnisses nicht vollständig erledigt.

Die IDE -Fehlermeldung: 

Fehler beim Commit mit Fehler: pathspec "application/templates /lists/index.html" hat keine Datei (en) gefunden bekannt zu git.

Nachdem ich etwas gelesen hatte, bestand meine Strategie darin, die Datei wieder herauszunehmen und dann wieder hinzuzufügen. Ich habe die verdächtige Datei aufgehoben

git reset HEAD lists/Templates/lists/index.html

Hinweis, git status hat nur das Verzeichnis hier angezeigt ... Nicht die Datei.

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    lists/templates/

Dann fügte ich den korrigierten Verzeichnisnamen wieder hinzu (ich habe nur den Pfad für das Hinzufügen verwendet, der Leitung von git status folgend).

git add lists/templates/

Danach war mein Commit erfolgreich. Ich bin nicht sicher, ob dies die ideale Technik war, aber es wurde der Commit-Fehler in meinem Fall behoben.

3
cmbind55

ich hatte das gleiche Problem. ändern Sie einfach "Anführungszeichen in Anführungszeichen" in doppelte Anführungszeichen ""

3
Trilochan

wenn Sie vom Terminal aus arbeiten, stellen Sie sicher, dass Sie in Ihrem Befehl ein Nachrichtenflag haben. 

git commit "Your Commit Message" //Throws an error: pathspec '3.

git commit -m "Your Commit Message" //No error thrown

2

iOS 9.2.1, Xcode 7.2.1, ARC aktiviert

Ich bin dabei umgegangen, während ich die Datei "contents.json" für meinen LaunchImage-Bestandskatalog geändert habe. Sie können die Terminalbefehle als Antwort verwenden, aber versuchen Sie es auf einfachere Weise ...

Quellcodeverwaltung -> Aktualisierungsstatus

 enter image description here

Hoffe das hilft. Prost!

2
serge-k

Ich hatte ein ähnliches Problem, aber es wurde behoben. Ich hätte "" anstelle von "" in der Windows-Befehlszeile verwenden sollen

2
alaboudi

Ich hatte das gleiche Problem. Keine der Antworten hier half mir, das Problem zu lösen. Nachdem ich zwei Tage festgefahren war, machte ich darauf aufmerksam, dass der gesamte Dateiname mit Pfad sehr lang ist. Ich habe es überarbeitet, es in etwas weniger Komplizierte umzubenennen und Ordner neu anzuordnen, um die gesamte Dateinamenlänge zu reduzieren, und es hat funktioniert!

2

ich hatte das gleiche Problem mit dem Word- "Zertifikat" als Paketnamen ... wenn ich das Paket in "Zertifikate" umbenenne, funktioniert es einfach ... seltsam .. 

1
HowardS

Ich hatte das gleiche Problem mit der '.entitlements'-Datei, löschte die vorhandene Datei und fügte sie erneut hinzu.

0
R.S.

Ich habe den gleichen Fehler bekommen. Ich habe die Festschreibungsnachricht als Teil des Befehlszeilenarguments übergeben. Die Commit-Nachricht, die ich mit doppelten Anführungszeichen übergeben hatte.

In git commit habe ich wieder doppelte Anführungszeichen verwendet. Dies warf den gleichen Fehler.

Also entfernte ich die doppelten Anführungszeichen aus der Festschreibenachricht, während ich git commit anrief. Das hat meine Probleme behoben.

git commit -m "%commit_message%"

Der obige Befehl hat den gleichen Fehler ausgelöst

Ich habe es in geändert 

git commit -m %commit_message%

Dies hat mein Problem behoben.

0
Anup Ghosh

Ich habe dies erlebt, als ich den Zweig versehentlich in einem anderen Repo auf BitBucket erstellt habe. Stellen Sie also sicher, dass Sie sich im richtigen Repo befinden und dass der Zweig dort existiert.

0
PWM

Ich hatte ein ähnliches Problem beim Löschen von Dateien mit SourceTree unter Mac. Eine der problematischen Dateien hatte Akzente (áéíóú ...). Um das Problem zu lösen, musste ich Terminal anstelle von SourceTree verwenden

0
xleon

Mein Problem war, dass ich die gesamte Commit-Zeile kopierte/einfügte, und sie hatte Sonderzeichen, die in der Konsole normale Zeichen waren (z. B. intelligente Anführungszeichen anstelle von normalen Anführungszeichen). Nachdem ich sie in einen Nur-Text-Editor eingefügt hatte, sah ich sie, korrigierte sie und es funktionierte.

0
NightShovel

In meinem Fall wurde die problematische Datei mit --skip-worktree markiert. Dies könnte leicht mit überprüft werden

git ls-files -v . | grep ^S
0
montonero

Mit XCode 7.3 habe ich die betreffende Datei in FooBar.foo.tmp umbenannt und dann festgeschrieben, sobald XCode/git diese neue Datei hinzugefügt und die alte gelöscht hat. Nach dem Festschreiben habe ich es wieder umbenannt (innerhalb von XCode). Nun ist es gut. So ist das Leben. 

0
Robert Wasmann