Rebase sederhana dari master dengan magit?

11

Saya baru saja memutakhirkan ke versi terbaru Magit setelah menggunakan versi lama selama bertahun-tahun. Semua peningkatan sangat bagus setelah sedikit mencari-cari dan mencari tahu perbedaannya.

Sekarang, saya hanya mencoba melakukan rebase paling sederhana (non-interaktif) magitdan saya tidak tahu bagaimana melakukannya. Contoh ini dari https://git-scm.com/docs/git-rebase .

git checkout topic
git rebase master
  1. Memukul r
  2. ?
  3. Cabang topik saya dirubah dengan perubahan terbaru dari master.
Andrew Goodnough
sumber
3
Pilih "di tempat lain", (tekan "e"), lalu dari sana pilih "master". Hanya untuk memastikan: Anda akan rebasing "topik" cabang Anda pada master (bukan dari ). On berarti Git akan mencari leluhur umum termuda dari "master" dan "topik", kemudian mengerjakan komitmen dalam "topik" untuk diterapkan pada mereka perubahan dalam "master". Pada akhirnya, "master" akan tetap tidak berubah, tetapi "topik" akan memasukkan perubahan dari "master" (saya menulis ini dengan harapan mencegah kesalahan, yaitu jika Anda berpikir bahwa rebasing dari master akan melakukan yang sebaliknya).
wvxvw
2
Perhatikan bahwa jika Anda menetapkan upstream untuk cabang Anda - Anda dapat mengetik bdan kemudian uberulang kali untuk menggilir opsi yang dikenal ( origin/mastermenjadi khas) - yang kemudian akan menjadi opsi default untuk rebase ke (melalui r u).
phils
3
Anda harus membaca magit.vc/manual/magit/Rebasing.html
phils
Terima kasih atas komentarnya. Itu jelas bagi saya. Saya membaca halaman Rebasing Magit, tapi itu tidak masuk akal sebelumnya. Saya pikir kata 'ke' adalah masalahnya. Saya sekarang menggunakan 'r', lalu 'e' untuk menggabungkan yang terbaru dari master tetapi mengetahui bagaimana mengatur hulu saya dengan 'b', 'u' juga membantu.
Andrew Goodnough
@ wvxvw, bisakah Anda mengubah komentar itu menjadi jawaban?
tarsius

Jawaban:

16
  1. Tekan r (rebase) di buffer status Magit. Ini akan menampilkan buffer pop-up dengan lebih banyak opsi.
  2. Tekan e (di tempat lain) untuk mulai rebasing pada cabang yang berbeda.
  3. Pilih cabang untuk rebase dengan menjawab prompt (catatan: cabang yang dipilih tidak diubah, cabang saat ini) .
  4. Proses rebase akan dimulai dan Anda sekarang akan memiliki lebih banyak opsi di menu rebase: runtuk melanjutkan (setelah menyelesaikan konflik) , auntuk membatalkan (seluruh proses rebase akan digulung kembali ke sebelum rebase) dan suntuk melewati (kadang-kadang Git bingung, misalnya , ketika komit Anda muncul untuk tidak memperkenalkan perubahan apa pun, yang mungkin terjadi ketika cabang Anda saat ini dan cabang target menambahkan modifikasi yang sama) .
  5. Komit Anda akan diterapkan pada komit di cabang target. Jika mereka tidak berlaku dengan lancar, Anda akan ditunjukkan kemajuan dan konflik di buffer status Magit.
wvxvw
sumber