Ich habe kürzlich Git auf Version aktualisiert 2.7.2.windows.1
(Ich verwende Windows 7 64-Bit). Seit dem Update kann ich nicht mehr laufen git add
mit dem -p
Option auf Dateien in einem bestimmten Verzeichnis (oder seinen Unterverzeichnissen), dessen Name lautet _
(ein Unterstrich).
git status
meldet korrekt, dass meine Datei Änderungen aufweist:
PS C:\Users\Carl\www\dl> git status
On branch develop
Your branch is up-to-date with 'origin/develop'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: _/php/class.Menu.php
Und ich kann die gesamte Datei mit einem einfachen hinzufügen git add
, oder durch Angabe des Dateinamens. Aber wenn ich versuche, das einzuschließen -p
oder --patch
Option (beide Varianten liefern die gleichen Ergebnisse), meldet Git, dass es keine Änderungen gibt:
PS C:\Users\Carl\www\dl> git add -p .\_\php\class.Menu.php
No changes.
Dies geschieht nur für Dateien innerhalb der _
Verzeichnis, aber es spielt keine Rolle, ob ich cd
in dieses Verzeichnis, um die auszuführen git add
Befehl, ohne explizit einen Pfad mit einem Unterstrich angeben zu müssen; es geht immer noch nicht:
PS C:\Users\Carl\www\dl\_\php> git add -p .\class.Menu.php
No changes.
Ich hatte ursprünglich gedacht, dass dieses Problem mit einem ähnlichen Problem zusammenhängt, auf das ich kürzlich bei Dateien in der Datei gestoßen bin _
Verzeichnis, nach dem ich hier gefragt habe. Dieses Problem scheint jedoch mit der Posix-Pfadkonvertierung in MinGW zusammenzuhängen, während dieses Problem auftritt, unabhängig davon, ob ich Git Bash, Windows PowerShell oder cmd.exe verwende.
Wie ich in dieser vorherigen Frage sagte, glaube ich, dass Unterstriche in Datei-/Verzeichnisnamen gültig sind. Außerdem bin ich nicht der Eigentümer des Projekts, daher kann ich das Verzeichnis nicht umbenennen oder die Datei verschieben.
Ist das ein Bug in Git? Gibt es zusätzliche Schritte, die ich unternehmen kann, um festzustellen, was das zugrunde liegende Problem ist?
Bist du in ein Commit oder einen Branch ausgecheckt?
– Christian Grabowski
8. März 2016 um 22:44 Uhr
Nein, dies ist keine neue Datei. Es ist eine Datei, die bereits im Repository existiert, an der ich lediglich Änderungen vorgenommen habe.
– Karl Fink
8. März 2016 um 22:55 Uhr
Sind Sie jedoch auf einen einzigen Commit ausgecheckt? Meiner Erfahrung nach kann das zu einem seltsamen Verhalten führen, an dem man arbeiten muss.
– Christian Grabowski
9. März 2016 um 1:15 Uhr
Nein, bin ich nicht. Ich bin nur auf einem normalen Zweig, und alles ist auf dem neuesten Stand.
– Karl Fink
9. März 2016 um 1:17 Uhr
Dann müsste ich der Antwort von @Walle zustimmen, es ist nicht großartig, aber das sollte funktionieren.
– Christian Grabowski
9. März 2016 um 1:17 Uhr