Git

Cara Git Rebase

Cara Git Rebase
git rebase adalah penggabungan utiliti seperti git bergabung. Tetapi cara mereka bekerja berbeza.

Dalam artikel ini, saya akan membincangkan bagaimana Git rebase berfungsi, perbezaan antara Git rebase dan Git bergabung, dan bagaimana bekerja dengan Git rebase. Oleh itu, mari kita mulakan.

Git Rebase:

Katakan, anda mempunyai repositori Git dengan komit A, B, C di dalam tuan cawangan. Kemudian, anda membuat cawangan baru beberapa cabang dan menambah 2 komit baru D dan E kepada beberapa cabang cawangan.

Gambar 1: sejarah komitmen awal.

Sekarang, katakan, anda terlupa untuk menambahkan sesuatu di tuan cawangan. Jadi, anda kembali ke tuan cabang dan tambah komit baru G kepada tuan cawangan. Sejarah git anda akan kelihatan seperti berikut.

Gambar 2: sejarah komit setelah menambahkan komit G di cawangan induk.

Semuanya kelihatan baik. Sekarang, jika anda mahukan setiap perubahan yang telah anda buat pada beberapa cabang cawangan untuk berada di tuan cawangan, anda boleh menggabungkan beberapa cabang cawangan ke tuan cawangan. Inilah git bergabung buat.

Bagaimana jika anda mahukan komit G boleh didapati di beberapa cabang cawangan? Anda boleh menggunakan git rebase untuk itu.

Dari sejarah komitmen dalam rajah 2, anda dapat melihat bahawa cabangnya beberapa cabang bermula dari komit C. Sekiranya anda melakukan git rebase beberapa cabang, maka ia akan bermula dari komit G seperti rajah 3 di bawah. Perhatikan bahawa, isi komit D dan E akan berubah juga selepas operasi rebase. Yang melakukan D dan E akan merangkumi perubahan dalam komitmen G. Inilah sebabnya mengapa saya menambah * simbol sebelum melakukan D dan E.

Sekiranya anda ingin mengetahui bagaimana sejarah komitmen akan kelihatan seperti jika saya menggabungkannya, maka lihat gambar 4. Saya telah memasukkannya supaya anda dapat membandingkannya dengan git rebase.

Gambar 4: lakukan sejarah sekiranya gabungan git digunakan.

Sekarang setelah anda mengetahui apa itu git rebase, perbezaan antara git rebase dan git merge dan mengapa git rebase digunakan, saya akan menunjukkan cara menggunakannya di bahagian seterusnya artikel ini di bawah.

Aliran Kerja Git Rebase:

Di bahagian ini, saya akan membuat repositori git baru di komputer tempatan saya dan menunjukkan kepada anda bagaimana git rebase berfungsi. Saya cadangkan anda mempunyai pemahaman yang baik mengenai git rebase sebelum menggunakannya pada projek anda.

Pertama, buat repositori Git baru rebase-demo / pada komputer anda seperti berikut:

$ git init rebase-demo

Sekarang, arahkan ke rebase-demo / direktori seperti berikut:

$ cd rebase-demo /

Sekarang, buat fail baru ujian.txt seperti berikut:

$ echo "A"> ujian.txt

Ujian itu.fail txt hanya mengandungi satu baris A. Katakan, ini adalah kod projek awal anda.

Sekarang, lakukan perubahan seperti berikut:

$ git tambah .
$ git komit -m 'A'

Sekarang, tambahkan baris lain B kepada ujian.txt fail seperti yang ditunjukkan dalam tangkapan skrin di bawah.

Sekarang, lakukan perubahan seperti berikut:

$ git tambah .
$ git komit -m 'B'

Sekarang, mari tambah baris C yang lain ke ujian.txt fail.

Juga, lakukan perubahan seperti berikut:

$ git tambah .
$ git komit -m 'C'

Sekarang, sejarah komitmen cawangan induk akan kelihatan seperti berikut:

$ git log - talian

Sekarang, katakan, anda mempunyai beberapa idea baru yang ingin anda cuba. Oleh itu, mari buat dan checkout ke cawangan baru ciri baru seperti berikut:

$ git checkout -b ciri baru

Sekarang, tambahkan idea baru anda (garis D katakan) kepada ujian.txt fail.

Sekarang, lakukan perubahan seperti berikut:

$ git tambah .
$ git komit -m 'D'

Sekarang, tambahkan garis E ke ujian.txt fail.

Lakukan perubahan seperti berikut:

$ git tambah .
$ git komit -m 'E'

Sekarang, sejarah komit dari ciri baru cawangan hendaklah kelihatan seperti berikut:

$ git log - talian

Lihat bagaimana komit mengikut urutan A < B < C < D < E?

Sekarang, anda ingat bahawa anda lupa untuk menambahkan sesuatu ke tuan cawangan yang anda juga mahukan di ciri baru cawangan! Jadi, daftar masuk ke tuan cawangan.

Saya menambah baris baru pada akhir ujian.txt fail seperti yang anda lihat.

Sekarang, lakukan perubahan seperti berikut:

$ git tambah .
$ git komit -m 'G'

Sekarang, sejarah komit dari tuan cawangan mesti kelihatan seperti ini.

A < B < C < G

Sekarang, untuk melancarkan semula komit dari tuan cawangan ke ciri baru cawangan, pembayaran pertama ke ciri baru cawangan.

$ git checkout ciri baru

Sekarang, lakukan rease git dari tuan cawangan seperti berikut:

master $ git rebase

Sebilangan menggabungkan konflik! Mari betulkan.

Baiklah, perubahan yang telah saya buat pada komitmen G dan D saling bertentangan antara satu sama lain. Saya mahu menyimpan kedua-duanya.

Setelah menyelesaikan konflik penggabungan, the ujian.txt fail hendaklah seperti berikut:

Sekarang, tambahkan perubahan pada kawasan pementasan seperti berikut:

$ git tambah .

Sekarang, teruskan operasi rebase seperti berikut:

$ git rebase - teruskan

Satu lagi konflik gabungan! Ini boleh berlaku. Rebase mengubah sejarah komitmen git. Jadi, perkara seperti ini diharapkan.

Nampaknya proses penggabungan gagal kerana beberapa baris kosong. Mari betulkan.

Setelah menyelesaikan konflik penggabungan, the ujian.txt fail hendaklah seperti berikut.

Sekarang, tambahkan perubahan pada kawasan pementasan seperti berikut:

$ git tambah .

Sekarang, teruskan operasi rebase seperti berikut:

$ git rebase - teruskan

Git rebase selesai.

Seperti yang anda lihat, sejarah komitmen cawangan ciri baru dikemas kini. Sekarang, sejarah komitmen adalah seperti berikut:

A < B < C < G < D < E

Seperti yang dijangkakan.

Yang terakhir ujian.txt fail hendaklah seperti berikut.

Git rebase adalah alat yang hebat. Tetapi, jangan sekali-kali menggunakannya di repositori Git yang dikongsi. Hanya gunakan di repositori Git yang anda gunakan sahaja. Jika tidak, anda akan menghadapi banyak masalah.

Jadi, itulah cara anda menggunakan git rebase. Terima kasih kerana membaca artikel ini.

Enjin Permainan Sumber Percuma dan Terbuka untuk Membangunkan Permainan Linux
Artikel ini akan merangkumi senarai enjin permainan sumber percuma dan terbuka yang dapat digunakan untuk mengembangkan permainan 2D dan 3D di Linux. ...
Shadow of the Tomb Raider untuk Tutorial Linux
Shadow of the Tomb Raider adalah penambahan kedua belas untuk siri Tomb Raider - francais permainan aksi-pengembaraan yang dibuat oleh Eidos Montreal....
Cara Meningkatkan FPS di Linux?
FPS bermaksud Bingkai sesaat. Tugas FPS adalah mengukur kadar bingkai dalam pemutaran video atau persembahan permainan. Dengan kata mudah bilangan gam...