Attualmente ho due filiali su cui sto lavorando. A causa di un aggiornamento del software ho dovuto modificare completamente la struttura della cartella. Pertanto sposta i file in entrambi i rami. Ora ho raggiunto un punto in cui voglio unire il mio ramo di lavoro al mio ramo principale.git - Lo stesso file aggiunto da entrambi i rami causa un conflitto di unione strano
Il problema è che esistono conflitti di unione che indicano che un file è stato aggiunto da un solo ramo (added by them
o added by us
). Il problema è che il file è stato aggiunto da entrambi i rami.
Ad esempio, ho una trama a textures/texture1.png
. Il ramo principale lo ha spostato nella posizione corretta (era prima dello misc/textures/texture1.png
). Il ramo di lavoro lo spostò nello stesso identico luogo e lo modificò in seguito. Il conflitto di unione per questo file dice:
added by us: textures/texture1.png
Il punto è che questo non è il file che voglio! Voglio il file dall'altro ramo!
Quando faccio
git checkout --theirs textures/texture1.png
ottengo
error: path 'textures/texture1.png' does not have their veresion
, ma questo file lo fa esiste! L'ho aggiunto di recente! E quello è il file che voglio
Come posso risolvere questi conflitti?
(ulteriori informazioni, se necessario!)
laterale: git non riesco a dire che si sia rinominato il file e poi tu (ma non loro) hai modificato il file, dato che git esegue il rilevamento dinamico dei nomi e non è all'altezza del compito qui. Non ho mai provato a separare il commit del "file rinominato" dal commit di "modifica del file rinominato", anziché averli insieme, ma credo che averli separati avrebbe dato a git più possibilità di "capire le cose" per così dire. Sarebbe particolarmente utile con la tecnica "helper branch" descritta da @mnagel. – torek