Git rebase échoue, "Vos modifications locales apportées aux fichiers suivants seraient écrasées par la fusion". Pas de changements locaux?

104

Voici ma transcription d'essayer de fusionner ma branche de correction de bogue sur ma branche principale en vue de la pousser en amont. Il y a eu quelques changements en amont dans master depuis la création de la branche de correction de bogues, et il refuse maintenant de rebase.

Les fichiers sur lesquels il génère des erreurs ne sont pas différents lors de l'ouverture. aucun fichier n'a été ajouté, supprimé ou renommé. Rien n'est ignoré et rien n'est non suivi, mis en scène ou non. Je suis complètement perplexe quant à la raison pour laquelle le rebase échoue.

Je suis sous OS X 10.6.6 et 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
la source
Vous devez publier le contenu d'un statut git, le contenu de votre gitignore et ls dans les répertoires en question séparément, afin qu'il soit plus clairement lisible. Cela pourrait au moins en aider certains.
Kzqai
Avez-vous des paramètres crlf ou quoi que ce soit? Rebase ne devrait pas créer un arbre de travail sale comme ça. Et git statuscela peut être utile lorsque le rebase échoue. Il refuse de courir avec un arbre sale; nous savons que c'est propre avant de commencer. Il est le statut quand il y a des modifications locales qui pose un problème.
Cascabel
Êtes-vous sûr de l'ordre des paramètres pour git rebase? La première référence est celle sur laquelle rebaser, tandis que la deuxième référence optionnelle est celle qui sera extraite en premier. Vous devriez peut-être les échanger.
Laurent Pireyn

Réponses:

191

C'est la même réponse qu'une autre de mes questions sur les problèmes.

Je suis sur un mac, et ce changement de configuration obscur semblait résoudre tous mes problèmes concernant les changements non organisés alors qu'il n'y en avait pas.

git config --global core.trustctime false

Je pense que cela a à voir avec les différences entre les heures des fichiers Windows, les heures des fichiers Linux et les heures des fichiers mac. qui sait, n'hésitez pas à commenter si vous le faites.

Mise à jour: ce billet de blog explique ce qui se passe, en quelque sorte.

jhogendorn
la source
1
Merci! Je n'aurais jamais compris cela.
Christopher Pickslay
1
Même chose ici Chris - j'aimerais vraiment savoir ce qui a fait que cela fonctionne pour moi.
karlbecker_com
Malheureusement, cela n'a pas fonctionné pour moi. Quitter Xcode - même si les fichiers dont Git se plaignait ne figuraient pas dans le projet - a aidé.
Peu fréquent
1
Je suis sur SuSE en utilisant git-svn pour m'engager sur un serveur SuSE svn dans un fuseau horaire différent. Quelle que soit l'explication, cela a résolu le problème pour moi aussi.
Jonathan Hartley
5
Voici une explication de ce qui pourrait en être la cause git-tower.com/blog/make-git-rebase-safe-on-osx/# ! On dirait que cela a à voir avec un processus d'arrière-plan révisé.
schmunk
48

En ce qui concerne la réponse de Joshua Hogendorn: il me semble que laisser Xcode ouvert tout en travaillant sur le référentiel avec git conduit à ces problèmes. Cela a même conduit à une situation où git a commis quelque chose que je pensais avoir caché (et qu'il avait toujours par la suite), mais Xcode vient d'écrire sur le système de fichiers pendant le rebase.

Donc: fermez votre projet Xcode avant de travailler sur le repo avec git si vous voulez être en sécurité, et vous n'avez probablement pas besoin du paramètre core.trustctime false.

user132837
la source
Peut-être aviez-vous une sorte de paramètre "Enregistrer automatiquement le fichier toutes les N minutes" actif dans votre IDE? Ne faites pas cela.
Mikko Rantalainen
4
J'ai essayé… et travaillé pour moi! Fermez xcode avant d'effectuer un rebase. Perdre du temps pour rien. Merci !
Nicolas Lauquin
J'ai eu les mêmes erreurs que ci-dessus bien que j'utilise Aptana Studio 3. Lorsque j'ai quitté Aptana, le rebase fonctionnait. J'avais désactivé l'intégration git d'Aptana il y a quelques jours. Soit il ne s'est pas vraiment éteint, soit j'aurais dû redémarrer Aptana.
Bill Hoag
3
Face au même problème lorsque le projet était ouvert dans Visual Studio 2013. La fermeture du projet a résolu le problème.
Mohammad Dehghan
3
Plus généralement, cela semble être un problème avec les fichiers verrouillés lors d'un rebase. Pour moi, c'était en webpack --watchcours d'exécution.
Marc Stober