Sto utilizzando Git da solo per il mio progetto software locale in Visual Studio 2010. Recentemente ho creato un nuovo ramo per eseguire un refactoring più grande di una finestra di dialogo . Ho fatto le seguenti modifiche:Errore Git irrisolvibile: i seguenti file dell'albero di lavoro non tracciati verrebbero sovrascritti dal checkout
- rinominare Form1 per Form1a (inclusi tutti i file a seconda)
- Aggiungi nuova Form1
ho controllato questo cambiamento nel ramo, per esempio sotto forma-refactoring. È interessante notare che Git non ha notato che ho rinominato il file Form1.cs in Form1a.cs e creato un Form1.cs completamente nuovo, completamente diverso, ma invece ha notato un nuovo file Form1a.cs e ha trovato un sacco di differenze tra file Form1.cs precedenti e nuovi. Questo naturalmente porterà a diffs totalmente garbaged, ma non mi interessa in questo caso fintanto che tutti i file sono gestiti correttamente alla fine.
Quindi sono tornato al master per eseguire altre piccole modifiche. Niente di conflittuale. Fino ad ora, tutto ha funzionato bene.
Oggi, volevo tornare al mio refactoring della filiale per continuare quel lavoro. Ma tutto quello che ottengo è il seguente messaggio:
git.exe checkout form-refactoring
Aborting
error: The following untracked working tree files would be overwritten by checkout:
Form1.Designer.cs
Please move or remove them before you can switch branches.
Che cosa dovrebbe essere? Il file menzionato non è untracked. Né nel ramo principale, né nel ramo di refactoring del modulo. Fa parte di entrambi i rami, ma uno non è un discendente dell'altro. Cosa succederebbe se lo cancellassi, è andato per sempre? Non mi fido di Git per riportare il file corretto se elimino qualcosa ora. Non ho giocato con nessun file al di fuori delle mie operazioni Git menzionate, quindi perché dovrei giocare con qualsiasi file per continuare a utilizzare le operazioni Git adesso? Git ha rotto, Git dovrebbe gestirlo ora!
In questo momento, non posso continuare con il mio lavoro perché non posso cambiare ramo. C'è una soluzione facile a questo?
La versione di Git è 1.7.6, TortoiseGit è 1.7.3.
Ti capita di avere un modello che corrisponde Form1.Designer.cs nel vostro .gitignore o qualsiasi altro ignorare configurazioni? – James
Quel file ha un segno di spunta verde in Explorer e ha anche una cronologia. Quindi presumo che non sia ignorato. Inoltre, ci sono altri file Form.Designer.cs nel mio progetto che non causano alcun problema. E questo non è il primo repository Git che ho creato con VS2010, fino ad oggi anche pochi sforzi nella ramificazione hanno funzionato bene. – ygoe
Si prega di ricontrollare i filtri ignorare per vedere se sono cambiati per quel repository o ramo. Puoi ancora vedere lo stato e la cronologia su un file se è stato aggiunto prima del filtro ignora.Tutto ciò che usa lo stato git lo segnalerà comunque (come i segni di spunta di Explorer) Ciò può causare l'errore che stai indicando se ci sono davvero modifiche al file perché Git ora lo ignorerà quando eseguirà lo stato Git. Tuttavia Git continuerà a sapere che è cambiato quando prova a fare un checkout e ti dà questo errore. – James