Ho aggiornato Git alla versione 2.7.2.windows.1
(utilizzo Windows 7 a 64 bit). Dall'aggiornamento, non sono stato in grado di eseguire git add
con l'opzione -p
su file all'interno di una determinata directory (o delle sue sottodirectory) il cui nome è _
(un trattino basso).Impossibile utilizzare git add con l'opzione --patch
git status
segnala correttamente che il mio file ha modifiche:
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
E posso aggiungere l'intero file con un semplice git add
, o specificando il file per nome. Ma se cerco di includere l'opzione -p
o --patch
(entrambe le varianti producono gli stessi risultati), Git riferisce che non ci sono cambiamenti:
PS C:\Users\Carl\www\dl> git add -p .\_\php\class.Menu.php
No changes.
Questo accade solo per i file all'interno della directory _
, ma non è così importa se I cd
in quella directory per eseguire il comando git add
senza dover specificare esplicitamente un percorso con un trattino basso in esso; che ancora non funziona:
PS C:\Users\Carl\www\dl\_\php> git add -p .\class.Menu.php
No changes.
mi aveva inizialmente pensato che questo problema era legato a uno simile che ho incontrato di recente sui file all'interno della directory _
, which I asked about here. Tuttavia, sembra che il problema sia stato correlato alla conversione del percorso Posix in MinGW, mentre questo problema si verifica sia che io utilizzi Git Bash, Windows PowerShell o cmd.exe.
Come ho detto in quella domanda precedente, credo che i caratteri di sottolineatura siano validi nei nomi di file/directory. Inoltre, non sono il proprietario del progetto, quindi non posso rinominare la directory o spostare il file.
Si tratta di un bug in Git? Ci sono ulteriori misure che posso prendere per determinare qual è il problema di fondo?
Sei uscito da un impegno o una filiale? –
No, questo non è un nuovo file. È un file già esistente nel repository a cui ho semplicemente apportato delle modifiche. –
sei uscito con un solo commit? Nella mia esperienza, ciò può portare a comportamenti strani su cui lavorare. –