Git rebase fallisce, "Le tue modifiche locali ai seguenti file verrebbero sovrascritte dall'unione". Nessun cambiamento locale?


104

Ecco la mia trascrizione dal tentativo di unire il mio ramo bugfix al mio ramo principale in preparazione per spingerlo a monte. Ci sono state alcune modifiche a monte inserite nel master da quando è stato creato il ramo bugfix, e ora si rifiuta di rebase.

I file su cui genera errori non vengono modificati quando vengono aperti. nessun file è stato aggiunto, rimosso o rinominato. Niente viene ignorato e niente è non tracciato o messo in scena o non messo in scena. Sono completamente perplesso sul motivo per cui il rebase sta fallendo.

Sono su OS X 10.6.6 e git 1.7.4

.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git rebase bug586-test master-test
First, rewinding head to replay your work on top of it...
Applying: - comiitting code related to api permissions
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
error: Your local changes to the following files would be overwritten by merge:
    inc/data.inc
    templates/apipermissions_tpl.inc
    templates/currencies_tpl.inc
Please, commit your changes or stash them before you can merge.
Aborting
Failed to merge in the changes.
Patch failed at 0001 - comiitting code related to api permissions

When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".



.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git status
# Not currently on any branch.
nothing to commit (working directory clean)



.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git rebase --abort
HEAD is now at 5efccf1 - comiitting code related to api permissions



.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git log -n10 --oneline
5efccf1 - comiitting code related to api permissions
a8a5ee4 Style changes for IE
cfca618 Style changes for IE
8a69de6 Style changes for IE
8946585 - comiitting code related to api permissions - fixed an html error in the currencies template
5fba0a9 Merges the 1.11b branch bugfixes and changes into trunk
ef57049 Andrew Commiting on Blakes behalf on changes he made to transfers; Also an Indue GW balance fix; debitcarupload fix for LSN
69e4313 Fixed an issue with Support From email
9058fb6 Sets the svn property svn:eol-style to LF, to enforce unix style line endings
240839e Fixes up a lot of the whitespace issues.



.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git checkout bug586-test 
Switched to branch 'bug586-test'



.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git log -n10 --oneline  
b7b1f8a Resolves #586, Postback on deposit
5fba0a9 Merges the 1.11b branch bugfixes and changes into trunk
ef57049 Andrew Commiting on Blakes behalf on changes he made to transfers; Also an Indue GW balance fix; debitcarupload fix for LSN
69e4313 Fixed an issue with Support From email
9058fb6 Sets the svn property svn:eol-style to LF, to enforce unix style line endings
240839e Fixes up a lot of the whitespace issues.
cf27b6f - bug that came up with transferring. The transfer page had a hidden field called to, which was taking precedence over cards and usercard which would throw the system out a bit
7c21a81 Fixes #603, new add transaction form, journalled.
01e6292 Removes a pile of resource forks
880c5bc - bug that came up with transferring. The transfer page had a hidden field called to, which was taking precedence over cards and usercard which would throw the system out a bit



.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git rebase master-test bug586-test
First, rewinding head to replay your work on top of it...
Applying: Resolves #586, Postback on deposit
Using index info to reconstruct a base tree...
<stdin>:52: trailing whitespace.
                'name' => 'Invoice Transfer Out', 
<stdin>:175: trailing whitespace.

warning: 2 lines add whitespace errors.
Falling back to patching base and 3-way merge...
error: Your local changes to the following files would be overwritten by merge:
    templates/deposit_tpl.inc
Please, commit your changes or stash them before you can merge.
Aborting
Failed to merge in the changes.
Patch failed at 0001 Resolves #586, Postback on deposit

When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".



.-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)-
`--> git rebase --abort
HEAD is now at b7b1f8a Resolves #586, Postback on deposit

Dovresti pubblicare separatamente il contenuto di un git status, il contenuto del tuo gitignore e ls nelle directory in questione, in modo che sia più chiaramente leggibile. Questo potrebbe aiutare alcuni, almeno.
Kzqai

Hai impostazioni crlf o altro? Rebase non dovrebbe creare un albero di lavoro sporco come quello. E git statusciò che potrebbe essere utile è quando il rebase fallisce. Si rifiuta di correre con un albero sporco; sappiamo che è pulito prima di iniziare. È lo stato in cui sono presenti modifiche locali a causare un problema.
Cascabel

Sei sicuro dell'ordine dei parametri da git rebase? Il primo ref è quello a cui ribasare, mentre il secondo ref opzionale è quello che verrà estratto per primo. Forse dovresti scambiarli.
Laurent Pireyn

Risposte:


191

Questa è la stessa risposta di un'altra delle mie domande sui problemi.

Sono su un Mac e questa oscura modifica alla configurazione sembrava risolvere tutti i miei problemi relativi alle modifiche non programmate quando non ce n'erano.

git config --global core.trustctime false

Penso che abbia a che fare con le differenze tra i tempi dei file di Windows, i tempi dei file di Linux e i tempi dei file mac. chissà, sentiti libero di commentare se lo fai.

Aggiornamento: questo post sul blog spiega cosa sta succedendo, più o meno.


1
Grazie! Non l'avrei mai capito.
Christopher Pickslay

1
Stessa cosa qui Chris - Vorrei sicuramente sapere cosa ha fatto funzionare tutto questo per me.
karlbecker_com

Purtroppo questo non ha funzionato per me. L'uscita da Xcode, anche se i file di cui si lamentava Git non erano nel progetto , ha aiutato.
Non comune

1
Sono su SuSE utilizzando git-svn per eseguire il commit su un server svn SuSE in un fuso orario diverso. Qualunque sia la spiegazione, questo ha risolto il problema anche per me.
Jonathan Hartley

5
Ecco una spiegazione di quale potrebbe essere la causa git-tower.com/blog/make-git-rebase-safe-on-osx/# ! Sembra che abbia a che fare con un processo in background revisionato.
schmunk

48

Per quanto riguarda la risposta di Joshua Hogendorn: mi sembra che lasciare Xcode aperto mentre si lavora sul repository con git porti a questi problemi. Ha anche portato a una situazione in cui git ha commesso qualcosa che pensavo di aver nascosto (e che aveva ancora in seguito) ma Xcode ha semplicemente scritto nel filesystem proprio durante il rebase.

Quindi: chiudi il tuo progetto Xcode prima di lavorare sul repo con git se vuoi essere al sicuro, e quindi probabilmente non hai bisogno dell'impostazione core.trustctime false.


Forse avevi una sorta di impostazione "salva automaticamente file ogni N minuti" attiva nel tuo IDE? Non farlo.
Mikko Rantalainen

4
Ho provato ... e ho lavorato per me! Chiudi xcode prima di fare un rebase. Perdere un po 'di tempo per niente. Grazie !
Nicolas Lauquin

Ho avuto gli stessi errori di cui sopra anche se sto usando Aptana Studio 3. Quando sono uscito da Aptana, il rebase ha funzionato. Qualche giorno fa avevo disattivato l'integrazione git di Aptana. O non si è davvero spento o avrei dovuto riavviare Aptana.
Bill Hoag

3
Ha affrontato lo stesso problema quando il progetto era aperto in Visual Studio 2013. La chiusura del progetto ha risolto il problema.
Mohammad Dehghan

3
Più in generale questo sembra un problema con i file bloccati durante un rebase. Per me stava webpack --watchcorrendo.
Marc Stober
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.