Git-Rebase schlägt fehl. "Ihre lokalen Änderungen an den folgenden Dateien werden durch Zusammenführen überschrieben." Keine lokalen Änderungen?

104

Hier ist mein Transkript von dem Versuch, meinen Bugfix-Zweig mit meinem Hauptzweig zusammenzuführen, um ihn in den Upstream zu verschieben. Seit der Erstellung des Bugfix-Zweigs wurden einige Upstream-Änderungen in den Master übernommen, und er weigert sich nun, die Basis neu zu erstellen.

Die Dateien, auf die Fehler geworfen werden, unterscheiden sich beim Öffnen nicht. Es wurden keine Dateien hinzugefügt, entfernt oder umbenannt. Nichts wird ignoriert und nichts wird nicht verfolgt oder inszeniert oder nicht inszeniert. Ich bin völlig ratlos darüber, warum die Rebase fehlschlägt.

Ich bin auf OS X 10.6.6 und 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
quelle
Sie sollten den Inhalt eines Git-Status, den Inhalt Ihres Gitignore und ls separat in den betreffenden Verzeichnissen veröffentlichen, damit er besser lesbar ist. Das könnte zumindest einigen helfen.
Kzqai
Hast du irgendwelche CRLF-Einstellungen oder so? Rebase sollte nicht so einen Dirty Work Tree erstellen. Und das git statuskönnte hilfreich sein, wenn die Rebase fehlschlägt. Es weigert sich, mit einem schmutzigen Baum zu rennen; Wir wissen, dass es sauber ist, bevor Sie anfangen. Es ist der Zustand , wenn es sind lokale Änderungen , die ein Problem verursacht.
Cascabel
Sind Sie sich über die Reihenfolge der Parameter für die Git-Rebase sicher? Die erste Referenz ist diejenige, auf die zurückgegriffen werden soll, während die optionale zweite Referenz diejenige ist, die zuerst ausgecheckt wird. Vielleicht solltest du sie tauschen.
Laurent Pireyn

Antworten:

191

Dies ist die gleiche Antwort wie eine andere meiner Fragen zu Problemen.

Ich bin auf einem Mac und diese obskure Konfigurationsänderung schien alle meine Probleme in Bezug auf nicht bereitgestellte Änderungen zu beheben, wenn es keine gab.

git config --global core.trustctime false

Ich denke, es hat mit Unterschieden zwischen Windows-Dateizeiten, Linux-Dateizeiten und Mac-Dateizeiten zu tun. Wer weiß, kann dies gerne kommentieren.

Update: Dieser Blog-Beitrag erklärt, was los ist.

jhogendorn
quelle
1
Vielen Dank! Ich hätte das nie herausgefunden.
Christopher Pickslay
1
Das Gleiche hier Chris - Ich würde definitiv gerne wissen, warum dies für mich funktioniert hat.
karlbecker_com
Leider hat das bei mir nicht funktioniert. Das Beenden von Xcode - obwohl die von Git beanstandeten Dateien nicht im Projekt enthalten waren - hat geholfen.
Gelegentlich
1
Ich bin auf SuSE und verwende git-svn, um einen Commit für einen SuSE-SVN-Server in einer anderen Zeitzone durchzuführen. Was auch immer die Erklärung sein mag, dies hat das Problem auch für mich behoben.
Jonathan Hartley
5
Hier ist eine Erklärung, was die Ursache sein könnte git-tower.com/blog/make-git-rebase-safe-on-osx/# ! Sieht so aus, als hätte es mit einem überarbeiteten Hintergrundprozess zu tun.
schmunk
48

In Bezug auf Joshua Hogendorns Antwort: Es scheint mir, dass das Offenlassen von Xcode während der Arbeit am Repository mit git zu diesen Problemen führt. Es führte sogar zu einer Situation, in der git etwas begangen hat, von dem ich dachte, dass es sich versteckt hat (und das ich danach noch hatte), aber Xcode direkt während der Rebase in das Dateisystem geschrieben hat.

Also: Schließen Sie Ihr Xcode-Projekt, bevor Sie mit git am Repo arbeiten, wenn Sie sicher sein möchten, und dann benötigen Sie wahrscheinlich nicht die falsche Einstellung core.trustctime.

user132837
quelle
Vielleicht war in Ihrer IDE die Einstellung "Datei alle N Minuten automatisch speichern" aktiv? TU das nicht.
Mikko Rantalainen
4
Ich habe es versucht ... und für mich gearbeitet! Schließen Sie xcode, bevor Sie eine Rebase durchführen. Verschwenden Sie einige Zeit für nichts. Vielen Dank !
Nicolas Lauquin
Ich hatte die gleichen Fehler wie oben, obwohl ich Aptana Studio 3 verwende. Als ich Aptana beendete, funktionierte die Rebase. Ich hatte vor ein paar Tagen Aptanas Git-Integration ausgeschaltet. Entweder hat es sich nicht wirklich ausgeschaltet oder ich hätte Aptana neu starten sollen.
Bill Hoag
3
Beim Öffnen des Projekts in Visual Studio 2013 trat dasselbe Problem auf. Durch Schließen des Projekts wurde das Problem behoben.
Mohammad Dehghan
3
Im Allgemeinen scheint dies ein Problem zu sein, wenn Dateien während einer Rebase gesperrt werden. Für mich lief es webpack --watch.
Marc Stober