Apakah Perbezaan Antara git reset –mixed, –soft, dan –hard?

Apakah Perbezaan Antara Git Reset Mixed Soft Dan Hard



Pada Git, setiap komit dipautkan ke komit sebelumnya dan HEAD menunjuk ke komit terbaharu di cawangan kerja. Sejarah komit disimpan sebagai pokok komit. Walau bagaimanapun, kadangkala pembangun perlu mengubah suai sejarah komit. Untuk tujuan ini, ' $ git set semula Perintah ” digunakan untuk mengubah suai sejarah repositori Git dan membetulkan kesilapan yang telah dibuat.

Artikel ini akan menerangkan secara ringkas perbezaan antara git reset –hard, –soft, dan –mixed.

Apakah Perbezaan Antara git reset –mixed, –soft, dan –hard?

Git menyediakan berbilang pilihan tetapan semula. Berdasarkan cara mereka mengendalikan komitmen, semua pilihan yang tersedia adalah berbeza antara satu sama lain. Mereka semua mengubah suai sejarah Git dan mengalihkan HEAD kembali. Selain itu, mereka mengendalikan perubahan secara berbeza, seperti:







  • ' –lembut 'pilihan yang digunakan dengan ' $ git set semula ” perintah untuk menyimpan fail dan mengembalikan perubahan komit kepada indeks pementasan Git.
  • $ git reset –mixed ” digunakan untuk membatalkan perubahan komit dan mengalih keluar fail daripada indeks pementasan tanpa memadamkannya daripada direktori kerja.
  • ' -keras 'pilihan dengan ' $ git set semula Perintah ” digunakan untuk memadam semua perubahan dan mengalih keluarnya daripada direktori kerja tempatan.

Mari kita ambil contoh untuk melihat bagaimana ' $ git set semula ” perintah berfungsi dengan pilihan yang berbeza!



Langkah 1: Pergi ke Repositori Git yang Diingini

Mula-mula, pindah ke repositori Git yang anda inginkan dengan menggunakan ' cd ” perintah:



$ cd 'C:\Pergi \t is_repo'





Langkah 2: Cipta Fail

Sekarang, laksanakan arahan yang diberikan di bawah untuk mencipta fail:

$ sentuh File4.txt



Langkah 3: Tambahkan Fail pada Indeks Pementasan

Menggunakan ' git add ” perintah untuk menambah fail yang baru dihasilkan ke dalam indeks pementasan:

$ git add File4.txt

Langkah 4: Lakukan Perubahan

Seterusnya, tambahkan semua perubahan pada repositori kerja dengan melaksanakan ' git commit ” perintah:

$ git commit -m 'Fail4 ditambahkan'

Langkah 5: Semak Log Git

Kemudian, semak sejarah log Git untuk melihat komitmen terkini yang telah ditambahkan:

$ log git

Dalam output di bawah, dapat dilihat bahawa semua komit tambahan terkini dipaparkan, dan ' KEPALA ” menunjuk kepada komitmen baru-baru ini:

Nota: Untuk melihat kedudukan penunjuk semasa HEAD dengan cara yang lebih baik, laksanakan ' log git 'perintah bersama' -satu garisan ' bendera:

$ log git --dalam talian

Output yang diberikan di bawah menunjukkan senarai hash SHA commit dengan mesej commit:

Langkah 6: Gunakan git reset –soft Command

Untuk mengembalikan perubahan tambahan dari repositori Git ke indeks pementasan, gunakan ' git set semula perintah ” bersama dengan “– lembut ”, dan tentukan kedudukan HEAD yang dikehendaki di mana ia diperlukan untuk menggerakkan penuding:

$ git set semula --lembut KEPALA~ 1

Langkah 7: Semak Status Git

Sekarang, sahkan kedudukan kembali HEAD semak status repositori Git:

$ status git

Dapat dilihat bahawa ' git reset –soft ” perintah telah mengembalikan perubahan komit kepada indeks pementasan Git. Selain itu, ' File4.txt ” kini dalam indeks pementasan Git dan perlu dilakukan:

Langkah 8: Semak Log Git

Untuk melihat kedudukan semasa HEAD, jalankan arahan yang diberikan bersama dengan ' -satu garisan ” pilihan:

$ log git --dalam talian

Di sini, HEAD menunjuk ke ' Fail3 'komit:

Langkah 9: Gunakan git reset — mixed Command

Untuk membatalkan perubahan yang dilakukan dan mengalih keluar fail dari kawasan pementasan tanpa memadamkannya daripada direktori kerja, laksanakan “ $ git reset –mixed ” perintah bersama dengan kedudukan HEAD yang diperlukan bagi komit:

$ git set semula --bercampur KEPALA~ 1

Langkah 10: Semak Status Git

Lihat perubahan yang baru ditambah dengan menyemak status repositori Git:

$ status git

Ia boleh diperhatikan bahawa perubahan komit yang ditentukan dikeluarkan dari kawasan pementasan. Walau bagaimanapun, mereka diletakkan di kawasan kerja:

Langkah 11: Semak Log Git

Semak sejarah log rujukan repositori Git bersama-sama cincang SHA:

$ log git --dalam talian

Langkah 12: Gunakan git reset — hard Command

Untuk mengalih keluar perubahan tambahan daripada direktori kerja setempat Git, laksanakan “ $ git reset –hard ” perintah:

$ git set semula --keras KEPALA~ 1

Langkah 13: Sahkan Penunjuk HEAD Berbalik

Untuk mengesahkan penuding HEAD, kembali ke kedudukan yang ditentukan, jalankan “ log git ” perintah:

$ log git --dalam talian

Output di bawah menunjukkan bahawa HEAD menunjuk ke ' Fail1 ditambah 'komit:

Langkah 14: Semak Status Git

Untuk melihat perubahan yang ditambah, semak status Git:

$ status git

Dapat dilihat bahawa kami tidak mempunyai apa-apa jejak dan perubahan yang belum selesai ' File2.txt ” fail. Oleh itu, File2.txt telah dialih keluar sepenuhnya:

Langkah 15: Sahkan Senarai Kandungan Repositori

Untuk mengesahkan senarai repositori kandungan, jalankan ' ls ” perintah:

$ ls

Seperti yang anda lihat, ' File2.txt ” fail tidak wujud dalam direktori semasa:

Kami telah menerangkan perbezaan antara pilihan git reset –mixed, –soft, dan –hard.

Kesimpulan

' git set semula Perintah ” digunakan untuk menetapkan semula perubahan, mengubah suai sejarah repositori Git dan membetulkan kesilapan. ' git reset –soft ” perintah menyimpan fail dan mengembalikan perubahan komit ke kawasan pementasan Git. Sebaliknya, ' git reset –bercampur ” perintah membatalkan perubahan komit dan mengeluarkan fail daripada indeks pementasan tanpa memadamkannya daripada direktori kerja. Untuk memadam semua perubahan dan mengalih keluarnya daripada kawasan kerja Git, “ git reset –hard ” arahan boleh digunakan. Artikel ini menggambarkan perbezaan antara git reset –mixed, –soft, dan –hard.