Bagaimana cara memilih cherry dengan magit?

40

Saya telah menggunakan magit selama beberapa bulan sekarang dan saya sangat menyukainya. Tapi satu hal yang masih saya lakukan di terminal adalah memetik ceri.

Apa cara sederhana untuk melakukan ini?

caisah
sumber

Jawaban:

31

Di mana pun Anda melihat komit dalam buffer Magit, Anda bisa memilihnya dengan memindahkan titik di sana lalu mengetik A A. Anda juga dapat memilih banyak komit sekaligus: cukup pilih beberapa komit menggunakan wilayah lalu tekan A A.

tarsius
sumber
45

Versi magit <= 1.4.2

Cukup mudah:

  1. Masukkan gambaran umum magit-status
  2. Periksa (tekan b b) cabang yang ingin Anda pilih.
  3. Lakukan rentang log (tekan l r l) untuk menemukan komit yang ingin Anda pilih. Di sini Anda memilih 2 cabang yang ingin Anda bandingkan.
  4. Gulir ke komit yang ingin Anda pilih dan tekan Auntuk menerapkan perubahan dan juga letakkan mereka bersama-sama dengan pesan komit. Jika Anda menekannya atidak akan membuat perubahan, tetapi hanya menerapkannya.

Anda tidak perlu melakukan rentang log untuk memilih ceri. Setiap kali Anda melihat log komit, Anda dapat menekan Auntuk mengambilnya.

Versi magit> = 2.1.0

Setelah memutakhirkan magit ke 2.1 alur kerjanya berbeda. Untuk kedua metode, Anda harus terlebih dahulu memulai magit-status.

Metode A : Cherry Pilih perubahan dari cabang lain satu per satu

  1. Tekan ldan kemudian ountuk mendapatkan daftar cabang lainnya.
  2. Pilih cabang tempat Anda ingin memilih buah ceri.
  3. Pindah ke komit yang Anda butuhkan dan tekan Adiikuti oleh Alagi.
  4. Baris status akan menunjukkan kepada Anda komit yang Anda pilih

    misalnya feature/ABC~4

    Tekan Enteruntuk menerapkan perubahan.

Metode B : Cherry Pilih semua perubahan dari cabang lain

  1. Tekan Auntuk memilih mode pilih ceri.
  2. Tekan Alagi untuk menerapkan dan melakukan perubahan. Tekan auntuk hanya menerapkan perubahan.
  3. Pilih cabang untuk memilih perubahan ceri dan tekan Enter.

Saya pribadi lebih suka metode A karena Anda dapat menangani konflik penggabungan dengan lebih baik.

cb0
sumber
8

Saya tidak menggunakan memetik ceri, tetapi memukul ?dalam magit-statuspertunjukan y: Cherry. Ini menjalankan perintah magit-cherry, yang memungkinkan Anda memilih head dan upstream. Sepertinya ini yang Anda inginkan.

Anda dapat mengetik C-h r d m Magit RETuntuk membaca manual Magit. Anda dapat menggunakan C-s cherrydan menekan berulang C-suntuk mencari melalui manual. Sepertinya info ada di bagian 23:

Salah satu kenyamanan gitadalah bahwa ia dapat memberi tahu Anda komit mana yang telah digabungkan ke hulu tetapi tidak secara lokal dan sebaliknya. Sub-perintah Git untuk ini adalah cherry(jangan dikacaukan dengan cherry-pick). Magit memiliki dukungan untuk ini dengan memanggil magit-cherryyang terikat ysecara default.

Magit kemudian akan meminta Anda terlebih dahulu untuk revisi hulu (yang default ke cabang jarak jauh yang saat ini dilacak jika ada) dan revisi kepala (yang default ke cabang saat ini) untuk digunakan dalam perbandingan. Anda kemudian akan melihat buffer baru di mana semua komit terdaftar dengan penanda arah, revisi dan baris pertama pesan komit. Penanda arah +menunjukkan komit yang ada di hulu tetapi tidak di kepala atau -yang menunjukkan komit yang ada di kepala tetapi tidak di hulu.

Dari daftar ini, Anda dapat menggunakan binding kunci biasa untuk komitmen individu pemetik aceri ( untuk memetik ceri tanpa melakukan dan A untuk yang sama ditambah komit otomatis). Buffer di-refresh secara otomatis setelah setiap pengambilan ceri.

pengasuh
sumber
1
Saat menjalankan manual Magit, Anda dapat menyimpan stroke key dengan melakukan C-h ialih - alih C-h r d. Ini akan membawa Anda ke tingkat atas Info secara langsung.
itsjeyd
1
@itsjeyd Nahh, C-h iakan membawa Anda ke file info terakhir yang Anda buka, jadi jika saya menekan C-h i m, saya berpotensi melihat menu bab di SICP alih-alih menu segalanya. Menekan dsetelah C-h iatau C-h rakan memastikan bahwa Anda akan berada di direktori Info ketika sebelum Anda menekan m.
pengasuh
Itu trik yang bagus, saya tidak tahu tentang itu! Juga, benar-benar di luar topik: Versi Info SICP ?! Di mana saya bisa mendapatkan salinannya? :)
itsjeyd
@itsjeyd Saya menyimpannya di Dropbox saya, saya rasa saya mendapatkannya dari sini: github.com/webframp/sicp-info
pengasuh
1
Terima kasih! Saya memeriksa MELPA dan ternyata ada paket yang dibuat dari repositori itu. Jadi menginstal versi Info SICP semudah M-x package-install RET sicp RET:)
itsjeyd