Git rebase gagal, 'Perubahan lokal Anda ke file berikut akan ditimpa dengan penggabungan'. Tidak ada perubahan lokal?

104

Ini adalah transkrip saya dari mencoba menggabungkan cabang perbaikan bug saya ke cabang master saya dalam persiapan untuk mendorongnya ke atas. Ada beberapa perubahan upstream yang ditarik ke master sejak cabang perbaikan bug dibuat, dan sekarang menolak untuk melakukan rebase.

File yang dilontarkannya kesalahan tidak berbeda saat dibuka. tidak ada file yang ditambahkan, dihapus atau diganti namanya. Tidak ada yang diabaikan dan tidak ada yang tidak terlacak atau dipentaskan atau tidak dipentaskan. Saya benar-benar bingung mengapa rebase gagal.

Saya menggunakan OS X 10.6.6 dan 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.dll
sumber
Anda harus memposting konten status git, konten gitignore Anda, dan ls di direktori yang bersangkutan secara terpisah, sehingga lebih mudah dibaca. Itu mungkin bisa membantu beberapa, setidaknya.
Kzqai
Apakah Anda memiliki pengaturan crlf atau apa pun? Rebase seharusnya tidak membuat pohon kerja kotor seperti itu. Dan git statusyang mungkin bisa membantu adalah ketika rebase gagal. Ia menolak untuk berlari dengan pohon yang kotor; kami tahu itu bersih sebelum Anda mulai. Ini status ketika ada yang modifikasi lokal yang menyebabkan masalah.
Cascabel
Apakah Anda yakin tentang urutan parameter untuk git rebase? Referensi pertama adalah refase, sedangkan referensi kedua opsional adalah referensi yang akan diperiksa terlebih dahulu. Mungkin Anda harus menukarnya.
Laurent Pireyn

Jawaban:

191

Ini adalah jawaban yang sama dengan pertanyaan saya yang lain tentang masalah.

Saya menggunakan mac, dan perubahan konfigurasi yang tidak jelas ini sepertinya memperbaiki semua kesengsaraan saya terkait perubahan yang tidak dipentaskan ketika tidak ada.

git config --global core.trustctime false

Saya pikir ini berkaitan dengan perbedaan antara waktu file windows, waktu file linux dan waktu file mac. siapa tahu, silakan berkomentar jika Anda melakukannya.

Pembaruan: Entri blog ini menjelaskan apa yang terjadi, semacam.

jhogendorn.dll
sumber
1
Terima kasih! Saya tidak akan pernah tahu ini.
Christopher Pickslay
1
Hal yang sama di sini Chris - Saya pasti ingin tahu apa yang menyebabkan ini berhasil bagi saya.
karlbecker_com
Sayangnya ini tidak berhasil untuk saya. Keluar dari Xcode - meskipun file yang dikeluhkan Git tidak ada dalam proyek - memang membantu.
Tidak umum
1
Saya di SuSE menggunakan git-svn untuk berkomitmen pada server svn SuSE di zona waktu yang berbeda. Apapun penjelasannya, ini memperbaiki masalah saya juga.
Jonathan Hartley
5
Berikut penjelasan tentang apa yang mungkin menjadi penyebabnya git-tower.com/blog/make-git-rebase-safe-on-osx/# ! Sepertinya ini ada hubungannya dengan proses latar belakang revisi.
schmunk
48

Berkenaan dengan jawaban Joshua Hogendorn: menurut saya membiarkan Xcode terbuka saat mengerjakan repositori dengan git menyebabkan masalah ini. Itu bahkan menyebabkan situasi di mana git melakukan sesuatu yang saya pikir telah disembunyikan (dan masih ada setelahnya) tetapi Xcode hanya menulis ke sistem file tepat selama rebase.

Jadi: Tutup proyek Xcode Anda sebelum Anda mengerjakan repo dengan git jika Anda ingin aman, dan kemudian Anda mungkin tidak memerlukan pengaturan core.trustctime false.

pengguna132837
sumber
Mungkin Anda memiliki semacam pengaturan "simpan file secara otomatis setiap N menit" yang aktif di IDE Anda? Jangan lakukan itu.
Mikko Rantalainen
4
Saya mencoba… dan bekerja untuk saya! Tutup xcode sebelum melakukan rebase. Buang banyak waktu untuk apa-apa. Terima kasih!
Nicolas Lauquin
Saya mengalami kesalahan yang sama seperti di atas meskipun saya menggunakan Aptana Studio 3. Ketika saya keluar dari Aptana, rebase berfungsi. Saya telah mematikan integrasi git Aptana beberapa hari yang lalu. Entah itu tidak benar-benar mematikan atau saya harus memulai ulang Aptana.
Bill Hoag
3
Menghadapi masalah yang sama saat proyek dibuka di Visual Studio 2013. Menutup proyek memecahkan masalah.
Mohammad Dehghan
3
Secara lebih umum, ini sepertinya masalah dengan file yang dikunci selama rebase. Bagi saya itu webpack --watchberjalan.
Marc Stober