Saya berhasil membuat sedikit kekacauan di repositori git lokal saya. Saya mencoba untuk memperbaiki komit yang rusak dengan menggunakan instruksi berikut . Sebelum menjalankan "git commit --amend" (dan setelah git rebase --interactive) saya memutuskan bahwa perubahan saya tidak benar dan saya menjalankan "git reset HEAD --hard". Bukan ide yang bagus, saya katakan.
Sekarang rebase interaktif tampaknya "macet". Git menunjukkan cabang saat ini sebagai (| REBASE-m). Setiap perintah (cd .., ls, git rebase ...) di dalam repositori saya memberikan kesalahan berikut:
cat: .git / rebase-merge / head-name: Tidak ada file atau direktori seperti itu
Begini cara git rebase --abort terlihat seperti:
$ git rebase --abort
cat: c:/_work/project/src/git/.git/rebase-merge/quiet: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/head-name: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/orig-head: No such file or directory
HEAD is now at 4c737fb Revert "Modified file names"
rm: cannot remove `c:/_work/project/src/git/.git/rebase-merge/done': Permission denied
rm: cannot remove directory `c:/_work/project/src/git/.git/rebase-merge': Directory
not empty
cat: .git/rebase-merge/head-name: No such file or directory
Inilah hasil dari git rebase --continue:
$ git rebase --continue
cat: c:/_work/project/src/git/.git/rebase-merge/prev_head: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/end: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/msgnum: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/onto: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/quiet: No such file or directory
prev_head must be defined
cat: .git/rebase-merge/head-name: No such file or directory
Ada ide? Saya ingin mengatur ulang situasi kembali ke keadaan sebelum saya memulai operasi rebase yang dipikirkan dengan baik.
Inilah cara git log --oneline menunjukkan situasinya:
4c737fb Revert "Modified file names"
247ac02 Modified file names
33141e6 Message modifications
10a4a04 Modified db script
Dan ini baik-baik saja.
Saya menggunakan msysgit v1.7.0.2.
sumber
git rebase --quit
bekerja untuk sayaJawaban:
Sepertinya Git mencoba menghapus
.git/rebase-merge
direktori tetapi tidak dapat menghapusnya sepenuhnya. Sudahkah Anda mencoba menyalin folder itu? Juga menyalin.git/rebase-apply
foldernya jika ada.sumber
git rebase --abort
(dari stackoverflow.com/a/4757777/146044 ) melakukan pekerjaan.git rebase --abort
tidak berfungsi)git rebase --abort
itu menghapus perubahan saya yang tidak dipentaskan ... kesalahan memang hilanggit rebase --abort
masih memberi saya kesalahan.git rebase --quit
bekerja untukku.Saya terjebak dalam hal ini. Saya membuat file kepala-nama, dan kemudian saya mengalami kesalahan lain mengatakan tidak dapat menemukan file ke, jadi saya membuat file itu. Lalu saya mendapat yang lain kesalahan mengatakan tidak bisa membaca '. Git / rebase-apply / ke': Tidak ada file atau direktori tersebut.
Jadi saya melihat dokumentasi git untuk rebasing dan menemukan perintah lain:
Ini membuat saya kembali ke cabang saya tanpa perubahan, dan saya bisa memulai rebase saya lagi, bagus seperti baru.
sumber
git rebase --quit
Apakah itu!--quit
bekerja.--abort
tidak karena rebase dibatalkan setengah jalan$ git rebase --abort
Output:error: could not read '.git/rebase-apply/head-name': No such file or directory
Akhirnya, solusi ini memperbaiki masalah saya:git rebase --quit
git rebase --quit
benar-benar menyelamatkan saya. Gejala yang sama seperti yang dijelaskan, tetapi saya datang setelah mencoba melakukangit pull --rebase
, yang karena beberapa alasan gagal. Catatan Saya telah mengaktifkan autostash (git versi 2.27.0.windows.1) dan menjalankan VS2019 (menunjuk pada repo itu) pada saat yang sama - mencurigai beberapa kombinasi dari ini mengacaukannya.Saya memiliki masalah yang sama karena proses zombie vim.exe. Membunuhnya di Task Manager, diikuti dengan
git rebase --abort
memperbaikinya.sumber
handle
perintah sysinternals dan melihat bahwa suatu proses (sh.exe) file terkunci. Menggunakannyapskill <pid>
untuk saya.Terima kasih @Laura Slocum untuk jawaban Anda
Saya mengacaukan semuanya saat rebasing dan mendapat KEPALA yang terpisah dengan
yang mencegah saya menyelesaikan rebasing.
KEPALA yang terlepas tampaknya berisi persis kondisi rebase yang saya inginkan, jadi saya berlari
dan setelah itu saya memeriksa cabang temp baru untuk mengikatnya ke kepala terpisah.
Dengan membandingkannya dengan cabang yang ingin saya rebase, saya bisa melihat cabang temp baru persis di negara bagian yang ingin saya jangkau. Terima kasih
sumber
Punya masalah yang sama di Eclipse. Tidak dapat Rebase => batalkan dari Eclipse.
Mengeksekusi git rebase - bank dari Git Bash Bekerja untuk saya.
sumber
Pada Windows, jika Anda tidak mau atau tidak dapat memulai ulang mesin lihat di bawah.
Instal Process Explorer: https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Di Process Explorer, Temukan> Pegangan File atau DLL ...
Ketikkan nama file yang disebutkan dalam kesalahan (untuk kesalahan saya itu adalah 'git-rebase-todo' tetapi dalam pertanyaan di atas, 'selesai').
Process Explorer akan menyorot proses memegang kunci pada file (bagi saya itu 'grep').
Matikan prosesnya dan Anda dapat membatalkan aksi git dengan cara standar.
sumber
Buat file dengan nama ini:
dan daripada digunakan
git rebase
sumber
Dalam kasing kasus saya
git rebase --abort
dangit rebase --continue
sedang melempar:Saya berhasil memperbaiki masalah ini dengan menghapus secara manual:
.git\rebase-apply
direktori.sumber
Saya menggunakan
git version 2.19.2.windows.1
.satu-satunya hal yang berhasil bagi saya adalah menghapus
.git/rebase-apply/
direktori dan melakukangit reset --hard
.sumber
Dalam kasus saya itu karena saya telah membuka SmartGit's Log di masing-masing proyek Git dan Total Commander di direktori proyek masing-masing. Ketika saya menutup keduanya saya bisa rebase tanpa masalah.
Semakin saya memikirkannya, semakin saya mencurigai Total Commander, yaitu Windows yang memiliki kunci pada direktori yang terbuka, git rebase mencoba melakukan sesuatu dengannya.
Saran ramah: Ketika Anda mencoba untuk memperbaiki sesuatu, selalu lakukan perubahan satu per satu. ;)
sumber
Saya telah mencoba semua langkah di atas tetapi tidak ada yang berhasil untuk saya. Akhirnya, menyalakan kembali komputer berfungsi untuk masalah ini: D
sumber
Dengan SublimeText 3 di Windows, masalahnya diperbaiki dengan hanya menutup jendela Sublime yang digunakan untuk edisi komit interaktif.
sumber
Setelah Anda menyelesaikan rebasing X jumlah komit dengan memuaskan, perintah terakhir harus
git rebase --continue
. Itu menyelesaikan proses dan keluar dari mode rebase.sumber
Saya memiliki masalah yang sama. Saya menggunakan proses explorer seperti yang disarankan dalam posting lain (saya tidak dapat menemukan posting itu) dan menemukan proses mana yang memiliki kunci pada file dan membunuhnya. kemudian jalankan --continue atau --abort sesuai kebutuhan
sumber
Dalam kasus saya setelah menguji semua opsi ini dan masih mengalami masalah saya mencoba
sudo git rebase --abort
dan melakukan semuanyasumber
mencoba yang lain kecuali reboot, yang berhasil bagi saya adalah
rm -fr .git/REBASE_HEAD
sumber
Jika Anda berada di bawah status dan rebase tidak berfungsi lagi,
Kemudian pertama jalankan,
Dan kemudian mengembalikan keadaan sebelumnya dari reflog,
Menggunakan,
sumber
Saya menggunakan git di gerhana dan saya mengalami masalah yang sama.
Akhirnya saya menemukan bahwa entri menu "Rebase ..." untuk sementara diubah menjadi sub-menu.
Team-> Rebase -> Abort
Ini berhasil untuk saya.
sumber