Jika Git rebase terhenti saat Anda bekerja di Mac, periksa terlebih dahulu apakah prosesnya masih berjalan dengan git status. Untuk melanjutkan, selesaikan setiap konflik, lakukan stage hanya pada berkas yang telah Anda selesaikan, dan jalankan git rebase --continue. Untuk kembali ke status branch sebelum rebase, jalankan git rebase --abort. Pilihan-pilihan ini melakukan hal yang berbeda, jadi pastikan hasil mana yang Anda inginkan sebelum memasukkan perintah.
1. Buka kembali repositori dan periksa statusnya
Buka Terminal dari Spotlight atau folder Applications > Utilities di Finder. Di Terminal, buka direktori tingkat atas repositori, lalu periksa statusnya:
cd '/path/to/your/repository'
git status
Ganti jalur contoh dengan jalur repositori Anda. Jika Anda mengetik jalur yang berisi spasi atau karakter meta shell, letakkan di dalam tanda kutip tunggal, seperti yang ditunjukkan. Shell default Terminal adalah zsh, meskipun administrator atau pengaturan Anda mungkin menentukan shell lain. Panduan Terminal Apple
Jika Git melaporkan bahwa rebase sedang berlangsung, baca output status untuk jalur yang berkonflik dan langkah saat ini. Jika tidak melaporkan adanya rebase yang aktif, jangan jalankan --continue atau --abort secara spekulatif; tinjau status dan riwayat terkini sebelum memutuskan apa yang terjadi. git status melaporkan perubahan pada working tree dan indeks, termasuk berkas yang tidak dilacak (untracked), jadi bacalah seluruh outputnya alih-alih berasumsi bahwa setiap berkas termasuk dalam bagian rebase. Dokumentasi git status Git
2. Lanjutkan dengan menyelesaikan konflik secara hati-hati
Buka setiap berkas yang berkonflik di editor Anda. Git menandai konflik teks dengan bagian-bagian seperti <<<<<<<, =======, dan >>>>>>>. Tentukan bagaimana isi akhir yang seharusnya, edit berkas tersebut, dan hapus penanda konflik. Jangan menerima satu sisi secara otomatis kecuali jika hal itu memang sesuai dengan kode atau teks yang dimaksud. Panduan rebase Git menjelaskan urutan penyelesaian konflik: edit berkas, lakukan stage pada hasil penyelesaian, lalu lanjutkan. Dokumentasi git rebase Git
Kembali ke Terminal dan periksa perubahan yang relevan sebelum melakukan staging. Sebagai contoh:
git diff
Lakukan stage pada setiap jalur yang telah diselesaikan berdasarkan namanya, dengan menggunakan jalur sebenarnya yang ditampilkan oleh git status:
git add 'path/to/resolved-file'
git status
git rebase --continue
Tanda kutip melindungi jalur yang memuat spasi atau karakter meta shell; hapus tanda kutip jika jalur tidak membutuhkannya. git add melakukan stage pada konten berkas yang disebutkan saat ini, jadi periksa diff terlebih dahulu jika berkas tersebut berisi editan yang tidak terkait. Periksa status kembali untuk memastikan resolusi yang benar telah di-stage. Git mungkin akan berhenti lagi pada konflik lain atau meminta Anda mengedit pesan commit; ikuti petunjuknya, lalu ulangi langkah-langkah penyelesaian (resolve), stage, dan lanjutkan (continue). Dokumentasi git add Git
Gunakan git rebase --skip hanya jika Anda secara sengaja ingin melewati commit yang sedang diputar ulang saat itu. Perintah ini akan melangkah melewati patch tersebut; ini bukan cara lain untuk melanjutkan commit yang sama. Jika Anda tidak yakin apakah melewatinya akan membuang pekerjaan yang diperlukan, jangan gunakan perintah ini. Opsi git rebase Git
3. Batalkan jika Anda ingin mengembalikan rebase
Jika Anda ingin menghentikan operasi dan kembali ke status branch semula, jalankan:
git rebase --abort
git status
Git mendokumentasikan --abort sebagai tindakan untuk mereset HEAD ke posisi branch semula (atau ke branch yang ditentukan, jika ada yang ditentukan saat rebase dimulai). Kemudian periksa status dan verifikasi bahwa hasilnya sesuai dengan yang Anda harapkan. Dokumentasi git rebase Git
Hindari kekeliruan antara --abort dan --quit. git rebase --quit mengakhiri operasi rebase sambil membiarkan HEAD, indeks, dan working tree persis seperti keadaannya pada saat itu. Pilih ini hanya jika Anda secara khusus ingin menghentikan rebase tetapi mempertahankan status proses yang sedang berjalan saat ini; opsi ini tidak memulihkan posisi branch sebelum rebase. Jika rebase menggunakan --autostash, Git akan menyimpan stash sementara tersebut saat keluar. Opsi git rebase Git
4. Jika Terminal tertutup atau statusnya tidak jelas
Menutup jendela Terminal tidak serta-merta memberi tahu Anda apakah Git telah menyelesaikan rebase. Buka kembali repositori dan jalankan git status; lanjutkan dari status yang dilaporkan. Jangan menjalankan kembali perintah git rebase awal saat rebase yang ada masih aktif.
Jika interupsi membuat repositori berada dalam kondisi di mana Git tidak lagi mengenali adanya rebase yang aktif, hindari menghapus berkas status .git secara manual atau menggunakan reset --hard berdasarkan tebakan semata. Dokumentasi Git mencatat bahwa interupsi pada waktu yang tidak tepat dengan backend apply dapat meninggalkan status rebase yang tidak dapat dibatalkan secara bersih oleh perintah --abort di kemudian hari. Pertama, amankan setiap pekerjaan bernilai yang belum di-commit, lalu periksa git status dan git reflog untuk memahami perpindahan branch baru-baru ini. Reflog mencatat pembaruan lokal terkini pada ujung branch; ini dapat membantu mengidentifikasi commit sebelumnya, tetapi memulihkannya harus dilakukan secara hati-hati dan matang. Catatan interupsi rebase Git, Dokumentasi git reflog Git
Untuk kasus konflik biasa yang terputus, keputusan yang aman itu sederhana: selesaikan dan lakukan stage pada perubahan yang dimaksud sebelum --continue, atau gunakan --abort jika Anda ingin menghentikan rebase dan kembali ke titik awal. Periksa kembali git status setelah salah satu tindakan tersebut agar Anda tahu persis status working copy di Mac Anda.
Sumber
Membuka atau keluar dari Terminal di Mac — Apple Support