Git

Cara Memilih Cherry di Git

Cara Memilih Cherry di Git
git cherry pick adalah fitur gabungan dari Git. Tapi ada sedikit perbedaan dalam git cherry pick dan git merge. Juga, kasus penggunaannya berbeda. Mari kita lihat cara kerja git merge terlebih dahulu, lalu bandingkan dengan git cherry pick. Dengan begitu, Anda akan mengerti kapan harus menggunakan git merge dan kapan harus menggunakan git cherry pick.

Katakanlah, Anda memiliki repositori Git. Anda sedang mengerjakan menguasai cabang dan Anda telah membuat beberapa komit (A, B dan C) pada menguasai cabang juga.

Sekarang, tiba-tiba kamu punya ide bagus. Jadi, Anda membuat cabang lain ide baru. Kemudian, Anda mulai membuat komitmen (E, F, dan G) di sana.

Anda juga membuat beberapa perubahan pada menguasai cabang lagi dan menambahkan komit baru H.

Sekarang, jika ide baru Anda berhasil, Anda mungkin ingin menggabungkannya ide baru cabang ke menguasai cabang. Katakanlah, Anda menggabungkannya. Ini akan membuat komit baru saya seperti yang Anda lihat pada gambar di bawah ini. Komit baru akan berisi semuanya (semua perubahan dalam komit E, F, dan G) dari cabang ide baru.

Sekarang, katakanlah, Anda tidak ingin menggabungkan semua komit cabang ide baru ke menguasai cabang. Anda hanya ingin menggabungkan perubahan (hanya perubahan perbedaan) di komit F ke menguasai cabang. Di sinilah git cherry pick masuk. Git cherry pick memungkinkan Anda melakukannya. Anda cukup menemukan hash dari komit yang ingin Anda pilih cherry dan menerapkannya ke cabang yang Anda inginkan. Sangat sederhana.

Dalam artikel ini, saya akan menunjukkan kepada Anda cara memetik buah ceri di Git. Jadi, mari kita mulai.

Alur Kerja Git Cherry Pick:

Di bagian ini, saya akan menyiapkan repositori Git sedemikian rupa sehingga Anda akan mengerti mengapa git cherry pick digunakan dan bagaimana cherry pick di Git.

Pertama, inisialisasi repositori Git yang kosong cherry-pick-demo/ sebagai berikut:

$ git init cherry-pick-demo

Sekarang, navigasikan ke repositori sebagai berikut:

$ cd cherry-pick-demo/

Sekarang, buat utama.c file dengan isi sebagai berikut:

Sekarang, tambahkan file ke staging area sebagai berikut:

$ git tambahkan .

Sekarang, komit perubahan sebagai berikut:

$ git commit -m 'komit awal'

Sekarang, buat .gitignore file dengan konten berikut:

Tambahkan file ke area pementasan.

$ git tambahkan .

Lakukan perubahan:

$ git commit -m 'ditambahkan ..gitignore file'

Seperti yang Anda lihat, saya memiliki 2 komit sekarang di my menguasai cabang.

$ git log --oneline

Sekarang, saya ingin mendorong repositori Git lokal saya ke server Git jarak jauh sehingga orang lain dapat bekerja di repositori ini. Anda dapat menggunakan GitHub di sini juga. Saya akan menggunakan server SSH lokal untuk ini di sini.

Jadi, tambahkan URL repositori Git jarak jauh sebagai berikut:

$ git jarak jauh tambahkan asal [email protected]:~/cherry-pick-demo.git

Sekarang, tekan menguasai cabang ke repositori Git jarak jauh sebagai berikut:

$ git push asal master origin

Sekarang, katakanlah bob ingin berkontribusi pada proyek. Jadi, dia mengkloning repositori Git di komputernya.

$ git klon [email protected]:~/cherry-pick-demo.git proyek saya

Sekarang, bob menavigasi ke direktori proyeknya.

$ cd proyek saya/

Dia juga memiliki 2 komit yang telah saya tambahkan.

$ git log --oneline

Sekarang, bob membuat uji cabang untuk mencoba ide-idenya.

$ git checkout -b tes

Dia memutuskan untuk mengubah nilai pengembalian dengan konstanta EXIT_SUCCESS dari stdlib Perpustakaan.

Dia menambahkan perubahan ke area pementasan.

$ git tambahkan .

Melakukan perubahan.

$ git commit -m 'menggunakan EXIT_SUCCESS alih-alih 0 sebagai nilai pengembalian'

Sekarang, dia memutuskan untuk menggunakan fungsi cetakPesan() untuk mencetak pesan. Jadi, dia menulis fungsinya.

Dia melakukan perubahan lagi.

$ git tambahkan .
$ git commit -m 'menambahkan fungsi printMessage()'

Kemudian, bob menggunakan fungsi dalam program.

Dia melakukan perubahan lagi.

$ git tambahkan .
$ git commit -m 'menggunakan printMessage() fungsi untuk mencetak pesan'

Sekarang, bob memiliki komit berikut di uji cabang.

Sekarang, bob mendorong cabang uji ke repositori jarak jauh Git.

$ git push tes asal

Sekarang, bob menelepon Anda dan memberi tahu Anda tentang perubahan luar biasa yang dia buat. Jadi, Anda mengambil perubahan pada repositori jarak jauh Git ke repositori lokal Anda sendiri.

$ git ambil

Sekarang, Anda melihat cabang baru asal/tes.

Anda juga menemukan 3 komitmen baru yang dibuat bob bob.

$ git log --oneline Origin/test

Sekarang, Anda ingin tahu perubahan apa yang dibuat bob.

$ git log -p asal/tes

Anda memutuskan untuk tidak mengganti nilai pengembalian dengan EXIT_SUCCESS seperti yang dilakukan bob.

Anda menyukai konsep menggunakan fungsi untuk mencetak pesan.

Anda juga menyukai komit ini.

Jadi, Anda ingin menggabungkan 2 dari 3 komit yang dibuat oleh bob. Jika Anda telah menggunakan git merge untuk menggabungkan uji cabang, maka ketiga komit akan diterapkan. Tetapi, dengan fitur git cherry pick, Anda hanya dapat menggabungkan komit yang Anda suka.

Perhatikan bahwa ketika Anda memilih komit di Git, Anda selalu mulai dengan komit terlama dan maju ke komit terbaru sedikit demi sedikit.

Sebelumnya, saya ceri memilih, utama.c file terlihat sebagai berikut:.

Sekarang, mari kita pilih yang tertua dari 2 komit, 9a4e532 sebagai berikut:

$ git cherry-pick 9a4e532

Konflik gabungan! Ini bisa terjadi.

Sekarang, buka utama.c file dan perbaiki konflik gabungan.

File terakhir akan terlihat sebagai berikut.

Sekarang, tambahkan perubahan ke area pementasan.

$ git tambahkan.

Sekarang, komit perubahan sebagai berikut:

$ git cherry-pick --lanjutkan

CATATAN: Anda juga bisa menggunakan git komit disini juga. Terserah kamu. saya lebih memilih git cherry-pick -lanjutkan karena secara otomatis akan menggunakan pesan komit dari komit, saya memetik ceri.

Sekarang, ketik pesan komit Anda di sini dan simpan file.

Komit baru harus ditambahkan.

Sekarang, cherry pilih komit berikutnya sebagai berikut:

$ git cherry-pick 08ba5e7

Tidak ada konflik gabungan. Bagus! Komit baru harus ditambahkan secara otomatis.

Seperti yang Anda lihat, saya mendapatkan apa yang saya inginkan. Saya hanya menggabungkan komit yang saya butuhkan.

Jadi, begitulah cara Anda memilih ceri di Git. Terima kasih telah membaca artikel ini.

Game Baris Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar Anda saat menggunakan Linux-ini juga dapat menjadi sumber hiburan karena Anda dapat menggunakannya untuk me...
Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Jika Anda suka bermain game di Linux dengan gamepad alih-alih sistem input keyboard dan mouse biasa, ada beberapa aplikasi yang berguna untuk Anda. Ba...
Alat Berguna untuk Gamer Linux
Jika Anda suka bermain game di Linux, kemungkinan besar Anda telah menggunakan aplikasi dan utilitas seperti Wine, Lutris, dan OBS Studio untuk mening...