Di Mac, selesaikan konflik cherry-pick dengan mengedit setiap berkas yang berkonflik di Terminal atau editor kode, melakukan staging berkas yang telah selesai dengan git add, dan menjalankan git cherry-pick --continue. Git dijeda karena tidak dapat menerapkan commit secara bersih; branch Anda saat ini belum menerima commit tersebut. Tinjau kedua sisi dari setiap konflik sebelum melanjutkan, dan gunakan git cherry-pick --abort jika Anda memutuskan untuk tidak melanjutkan. Dokumentasi cherry-pick Git menjelaskan status jeda ini beserta opsi-opsi untuk melanjutkannya.
1. Buka Terminal di folder proyek
Buka Terminal dari Spotlight atau folder Applications > Utilities di Finder. Di Terminal, berpindahlah ke folder repositori menggunakan cd beserta jalurnya. Untuk jalur folder yang mengandung spasi, gunakan tanda kutip pada jalur tersebut, misalnya cd "/Users/sam/Work/My Project". Anda juga dapat mengetik cd dengan spasi di akhir, menyeret folder proyek dari Finder ke jendela Terminal, lalu menekan Return. Apple mendeskripsikan Terminal sebagai antarmuka baris perintah macOS; prompt-nya sering kali diakhiri dengan % jika menggunakan shell bawaan zsh. Panduan Terminal Apple menjelaskan cara membukanya dan mengenali prompt tersebut.
Pastikan Anda berada di repositori dan periksa laporan Git sebelum mengubah berkas:
git status
Jika output menyatakan bahwa cherry-pick sedang berlangsung dan menyebutkan jalur-jalur yang berkonflik, lanjutkan ke langkah di bawah. Jika Anda tidak yakin repositori atau commit mana yang terlibat, berhentilah dan pastikan konteks tersebut sebelum menyelesaikan apa pun. Jangan memulai cherry-pick kedua saat yang pertama sedang dijeda.
2. Periksa konflik dan tentukan isi yang seharusnya dari berkas tersebut
Buka setiap berkas teks yang berkonflik di editor Anda. Git menyisipkan penanda di sekitar bagian-bagian yang tidak dapat direkonsiliasi. Bagian yang umum terlihat seperti ini:
<<<<<<< HEAD
content on the current branch
=======
content from the commit being cherry-picked
>>>>>>> commit subject or identifier
HEAD adalah versi branch saat ini; bagian lainnya berasal dari commit yang sedang diterapkan. Label-label ini mendeskripsikan kedua sisi operasi ini, tetapi tidak memberi tahu Anda versi mana yang benar. Manfaatkan kode di sekitarnya, perubahan yang dimaksud, dan tujuan commit untuk memutuskan apakah akan mempertahankan salah satu sisi atau menggabungkan keduanya. Dokumentasi Git menjelaskan bahwa berkas yang berkonflik berisi penanda dan jalur yang diterapkan secara bersih mungkin sudah diperbarui. Git cherry-pick
Edit berkas tersebut agar berisi hasil yang diinginkan, dengan menghapus semua baris penanda konflik. Periksa setiap konflik di berkas tersebut, simpan, dan ulangi untuk setiap jalur yang tercantum pada git status. Untuk berkas biner atau konflik yang hasil akhirnya tidak jelas, jangan menebak: berkonsultasilah dengan pembuat perubahan atau panduan proyek sebelum memilih versi. Hindari mengganti seluruh berkas dengan salah satu sisi hanya untuk menghilangkan konflik; hal itu dapat membuang perubahan yang sah.
3. Lakukan staging pada resolusi dan tinjau kembali
Setelah menyelesaikan berkas, beri tahu Git bahwa konfliknya telah diselesaikan dengan melakukan staging. Gunakan jalur persis yang ditampilkan oleh git status; gunakan tanda kutip pada jalur yang mengandung spasi:
git add "Sources/Example File.swift"
Ulangi untuk setiap jalur yang telah diselesaikan. git add melakukan staging pada konten berkas saat ini, jadi tinjau apa yang Anda masukkan ke staging jika berkas tersebut memuat editan yang tidak terkait. Manual git-add Git mendokumentasikan bahwa perintah ini menambahkan konten berkas ke indeks, yaitu area staging yang digunakan untuk commit berikutnya. Git add
Periksa apakah masih ada konflik yang tersisa dan tinjau resolusi yang telah di-stage:
git status
git diff --cached
git status seharusnya tidak lagi mencantumkan jalur yang belum terselesaikan. Baca diff yang di-stage dan pastikan perubahan yang diinginkan ada di sana serta penanda konflik atau editan yang tidak disengaja sudah tidak ada. git diff --cached menampilkan perubahan yang di-stage; Git diff mendokumentasikan opsi peninjauan ini. Jika Anda menemukan kesalahan, edit berkas tersebut, lakukan staging lagi, dan tinjau kembali diff-nya.
4. Lanjutkan cherry-pick
Ketika semua konflik telah diselesaikan dan di-stage, jalankan:
git cherry-pick --continue
Git melanjutkan operasi yang dijeda dan, jika berhasil, mencatat perubahan hasil cherry-pick sebagai commit baru. Jika Git membuka editor untuk pesan commit, simpan dan tutup menggunakan kontrol standar editor tersebut. Kemudian periksa git status dan tinjau commit terbaru jika diperlukan:
git status
git log -1 --oneline
Untuk urutan beberapa commit cherry-pick, --continue akan melanjutkan operasinya; commit berikutnya mungkin juga berhenti karena konflik. Selesaikan dan lakukan staging pada konflik commit tersebut dengan cara yang sama. Git mendokumentasikan --continue untuk melanjutkan cherry-pick yang tertahan dan --skip untuk melewati commit saat ini. Gunakan --skip hanya jika Anda memang berniat melewati perubahan commit tersebut, bukan sebagai jalan pintas untuk berkas yang belum diselesaikan. Opsi Git cherry-pick
Jika Anda ingin membatalkannya
Jika Anda memutuskan bahwa cherry-pick tidak boleh dilanjutkan, jalankan git cherry-pick --abort. Git mendokumentasikan ini sebagai pembatalan operasi dan pengembalian ke status sebelum urutan dimulai. Jika Anda memiliki pekerjaan lokal sebelum memulai, periksa setelahnya dengan git status; jangan gunakan perintah reset yang destruktif sebagai pengganti pemahaman status saat ini. Git cherry-pick
Aturan berhenti yang praktis cukup sederhana: lanjutkan hanya setelah Anda memahami konten yang dimaksud dari setiap berkas yang berkonflik dan telah meninjau hasil staging-nya. Jika maksud kodenya tidak jelas, pertahankan status jeda dan mintalah panduan khusus proyek sebelum membuat commit.
Sumber
Membuka atau keluar dari Terminal di Mac — Dukungan Apple