Git rebase falla, 'Sus cambios locales en los siguientes archivos se sobrescribirán mediante la combinación'. ¿Sin cambios locales?

104

Aquí está mi transcripción de intentar fusionar mi rama de corrección de errores en mi rama maestra en preparación para impulsarla en sentido ascendente. Ha habido algunos cambios ascendentes en master desde que se creó la rama de corrección de errores, y ahora se niega a rebasar.

Los archivos en los que arroja errores no se diferencian cuando se abren. no se han agregado, eliminado ni renombrado archivos. No se ignora nada y no se realiza un seguimiento, ni se pone en escena ni se pone en escena. Estoy completamente perplejo en cuanto a por qué falla la rebase.

Estoy en OS X 10.6.6 y 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
jhogendorn
fuente
Debe publicar el contenido de un estado de git, el contenido de su gitignore y ls en los directorios en cuestión por separado, para que sea más claramente legible. Eso podría ayudar a algunos, al menos.
Kzqai
¿Tiene alguna configuración de crlf o algo? Rebase no debería estar creando un árbol de trabajo sucio como ese. Y lo git statusque podría ser útil es cuando falla la rebase. Se niega a correr con un árbol sucio; sabemos que está limpio antes de empezar. Es el estado cuando no hay modificaciones locales que está causando un problema.
Cascabel
¿Estás seguro del orden de los parámetros para git rebase? La primera referencia es la que se va a ajustar, mientras que la segunda referencia opcional es la que se comprobará primero. Quizás deberías cambiarlos.
Laurent Pireyn

Respuestas:

191

Esta es la misma respuesta que otra de mis preguntas sobre problemas.

Estoy en una Mac, y este oscuro cambio de configuración pareció solucionar todos mis problemas con respecto a los cambios sin etapas cuando no había ninguno.

git config --global core.trustctime false

Creo que tiene que ver con las diferencias entre los tiempos de los archivos de Windows, los tiempos de los archivos de Linux y los tiempos de los archivos de Mac. quién sabe, no dude en comentar si lo hace.

Actualización: esta publicación de blog explica lo que está pasando, más o menos.

jhogendorn
fuente
1
¡Gracias! Nunca me hubiera dado cuenta de esto.
Christopher Pickslay
1
Lo mismo aquí Chris: definitivamente me gustaría saber qué causó que esto funcionara para mí.
karlbecker_com
Desafortunadamente, esto no funcionó para mí. Salir de Xcode, a pesar de que los archivos de los que se quejó Git no estaban en el proyecto , ayudó.
Poco común
1
Estoy en SuSE usando git-svn para comprometerme con un servidor svn de SuSE en una zona horaria diferente. Cualquiera que sea la explicación, esto me solucionó el problema también.
Jonathan Hartley
5
Aquí hay una explicación de cuál podría ser la causa: git-tower.com/blog/make-git-rebase-safe-on-osx/# ! Parece que tiene que ver con un proceso de fondo revisado.
schmunk
48

Con respecto a la respuesta de Joshua Hogendorn: me parece que dejar Xcode abierto mientras se trabaja en el repositorio con git conduce a estos problemas. Incluso llevó a una situación en la que git cometió algo que pensé que había escondido (y que todavía tenía después), pero Xcode simplemente escribió en el sistema de archivos justo durante el rebase.

Entonces: cierre su proyecto de Xcode antes de trabajar en el repositorio con git si desea estar seguro, y entonces probablemente no necesite la configuración core.trustctime false.

user132837
fuente
¿Quizás tenía algún tipo de configuración de "guardar archivos automáticamente cada N minutos" activa en su IDE? No hagas eso.
Mikko Rantalainen
4
Lo intenté ... ¡y funcionó para mí! Cierre xcode antes de realizar una reorganización. Perder mucho tiempo por nada. Gracias !
Nicolas Lauquin
Tuve los mismos errores que el anterior aunque estoy usando Aptana Studio 3. Cuando salí de Aptana, la rebase funcionó. Había desactivado la integración de git de Aptana hace unos días. O realmente no se apagó o debería haber reiniciado Aptana.
Bill Hoag
3
Enfrenté el mismo problema cuando el proyecto estaba abierto en Visual Studio 2013. Cerrar el proyecto resolvió el problema.
Mohammad Dehghan
3
De manera más general, esto parece un problema con los archivos que se bloquean durante un rebase. Para mí estaba webpack --watchfuncionando.
Marc Stober