Bagaimana untuk Memadamkan Komit dalam Git

46

Memadamkan komit dalam Git ialah sesuatu yang anda mungkin lakukan lebih kerap daripada yang anda jangkakan. Dengan tugas biasa seperti itu, anda mungkin mendapati ia berguna untuk mempunyai panduan ringkas.

Bagaimana untuk Memadamkan Komit dalam Git

Artikel ini menjawab cara memadamkan komit Git dan penyelesaian lain yang mungkin anda boleh cuba. Jadi, jika anda membuat kesilapan dalam komit terakhir anda atau ingin membersihkan sejarah repo anda, baca terus untuk mengetahui.

Memadamkan Komit dalam Git

Anda boleh memadamkan komit dalam Git dalam beberapa cara. Jika anda tidak mahu atau tidak boleh menukar mesej komit Git, maka penyelesaian yang paling biasa ialah menggunakan arahan “git reset” dan “git revert”.

Untuk menggunakan “git reset,” lakukan ini:

  1. Cari komit yang anda mahu padamkan dengan git log.
    Menjalankan arahan "git log".
  2. Gunakan git reset –soft [commit hash] untuk membatalkan arahan komit tanpa “nuking” apa-apa.
    Menggunakan arahan "git reset" untuk menetapkan semula komit
  3. Atau, gunakan git reset –hard [commit hash] untuk menetapkan semula kepada komit sebelum yang anda mahu padamkan.
  4. Gantikan “[commit hash]” dengan cincangan komitmen yang anda sasarkan.

Sebagai alternatif, anda juga boleh menggunakan “git rebase -i HEAD~[Number]” untuk mengasaskan semula bilangan komitmen terakhir. Gantikan [number] dengan bilangan komit. Git akan menunjukkan kepada anda fail yang boleh anda edit dan alih keluar komit yang anda ingin hilangkan. Hanya lakukan ini jika anda belum menolak komitmen.

Ini adalah kaedah mudah di permukaan, tetapi berhati-hati. Ia mengalih keluar semua perubahan dalam komit secara kekal selepas perubahan yang anda tetapkan semula, jadi pastikan ini adalah apa yang anda mahukan.

Sebagai alternatif, anda boleh menggunakan “git revert” seperti ini:

  1. Jika anda ingin menyimpan perubahan dalam direktori kerja anda, gunakan git revert [commit hash]. Perintah ini mencipta komit baharu yang membatalkan perubahan daripada komit yang anda tentukan.
  2. Selepas berbalik, tolak perubahan ke repositori jauh dengan git push.

Berikut ialah alternatif lain, sekiranya anda ingin memadamkan berbilang, komitmen khusus:

  1. Gunakan git checkout [last commit hash] untuk menyemak komit terakhir yang sepatutnya kekal.
  2. Buat cawangan baharu dengan git checkout -b repair.
  3. Jalankan git cherry-pick [specific commit hash] pada komit pertama yang anda ingin simpan.
  4. Ulangi untuk komitmen lain yang anda ingin simpan.
  5. Jalankan git checkout master ke checkout master.
  6. Tetapkan semula induk kepada komit terakhir yang boleh digunakan dengan git reset –hard [last commit hash].
  7. Gabungkan cawangan baharu untuk dikuasai dengan pembaikan git merge.
  8. Kemudian jalankan git push -f origin master untuk menolak ke alat kawalan jauh.

Bilakah Anda Harus Padamkan Komit

Terdapat beberapa situasi apabila mengalih keluar komit adalah perkara terbaik untuk dilakukan. Berikut adalah sebahagian daripadanya.

Kod Buruk

Salah satu sebab paling biasa mengapa anda ingin menyingkirkan komit adalah kerana kod di dalamnya tidak memotongnya. Mungkin anda telah membuat kesilapan dan ingin memulakan semula, atau mungkin anda telah menyedari bahawa hasilnya tidak sepadan dengan apa yang anda cuba capai. Sebagai contoh, anda mungkin telah menambah fungsi yang bercanggah dengan bahagian lain kod anda. Memadamkan komit ini membolehkan anda kembali, membetulkan isu dan kemudian mengkomit semula versi yang diperbetulkan.

Jika anda baru sahaja melakukan sebahagian daripada kod dan kemudian melihat ralat yang ketara, seperti pepijat atau sekeping kod yang tidak sepatutnya ada, tetapi anda tidak mempunyai masa untuk membetulkannya – itulah sebab yang baik untuk memadam komit. Daripada membiarkan sekeping kod yang tidak perlu atau cacat ini disimpan dalam sejarah projek anda (dan berpotensi menyebabkan kekeliruan atau ralat bencana dalam pembetulan pepijat), anda boleh memadamkan komit itu. Melakukannya memastikan projek anda bersih.

Data Sensitif

Melakukan data sensitif secara tidak sengaja berlaku lebih kerap daripada yang anda fikirkan. Tidak mengejutkan, berbuat demikian boleh menjadi risiko keselamatan yang besar, sama ada peribadi atau korporat. Apa-apa sahaja daripada kata laluan dan kunci API kepada maklumat peribadi secara senyap-senyap boleh berakhir dalam komitmen anda. Dan apabila ia berada di luar sana dalam ruang projek, sesiapa sahaja boleh mengaksesnya dan berpotensi melanggar keselamatan anda atau pasukan anda.

Kemalangan ini mungkin merupakan sebab yang lebih baik untuk memadamkan komit daripada kod buruk semata-mata. Anda boleh mengedit kod yang rosak dan tidak bimbang tentang ia kekal dalam sejarah projek, tetapi ini bukan risiko yang anda mahu ambil dengan data sensitif. Sebagai contoh, jika anda secara tidak sengaja memasukkan fail yang mengandungi kunci API, mengalih keluar komit ini menghalang kunci ini daripada jatuh ke tangan yang salah.

Menjaga Kebersihan Sejarah

Satu lagi sebab kukuh untuk memadamkan komit Git adalah untuk memastikan sejarah projek anda bersih dan mudah. Semasa anda mengusahakan projek itu, sejarah komitmen anda menjadi lebih berselerak dengan kemas kini kecil, percubaan atau perubahan yang tidak lagi berkaitan. Apabila anda ingin melihat sejarah untuk sebarang sebab, seperti memikirkan sebab anda membuat perubahan tertentu atau kembali kepada keadaan stabil selepas percubaan, sejarah yang berantakan boleh menjadi masalah.

Dengan memadamkan komitmen yang tidak perlu, anda memastikan sejarah projek anda kemas dan mudah untuk anda dan orang lain dalam pasukan anda untuk mengikuti. Itu lebih berguna sebelum menggabungkan cawangan supaya anda boleh membentangkan sejarah yang jelas, ringkas dan berkaitan kepada sesiapa sahaja yang menyemak kod anda. Sebagai contoh, jika anda mempunyai beberapa komitmen yang hanya tweak kecil pada ciri, anda mungkin mahu memasukkannya ke dalam satu komitmen untuk memastikan sejarah anda kemas.

Amalan dan Petua Terbaik

Sebelum anda memadamkan komitmen, ikut beberapa amalan terbaik untuk memastikan projek anda berfungsi dan mengelakkan akibat yang tidak diingini.

Sandarkan Kerja Anda

Sebelum anda memadamkan sebarang komitmen dalam Git, adalah idea yang baik untuk menyandarkan kerja anda, walaupun anda fikir ia mungkin tidak berbaloi untuk disimpan. Ia mungkin kelihatan seperti kerja tambahan, tetapi sandaran adalah jaring keselamatan sekiranya perkara tidak berjalan seperti yang dirancang.

Anda boleh membuat sandaran dengan membuat cawangan baharu yang mencerminkan keadaan semasa repositori anda. Contohnya, sebelum memadamkan komit yang memperkenalkan ciri baharu, buat cawangan sandaran “sandaran ciri”. Itu akan memberi anda kebebasan untuk mencuba dan memadamkan komitmen tanpa rasa takut kehilangan kerja penting. Jadi, jika anda menyedari kemudian bahawa anda memerlukan sesuatu daripada komit yang dipadamkan, anda tidak akan kehilangannya untuk selamanya. Jika anda memutuskan anda tidak lagi memerlukan sandaran itu, anda boleh memadamkan cawangan Git.

Jangan Padamkan Komitmen Awam

Apabila bekerja dengan repositori awam, terutamanya dalam projek sumber terbuka atau persekitaran pasukan, anda harus lebih berhati-hati tentang memadamkan komitmen. Sebaik sahaja komitmen ditolak ke repositori awam dan orang lain telah menariknya, memadamkan komitmen itu boleh mengelirukan atau mengalih perhatian semua orang yang terlibat dan mengganggu kerja. Ini adalah satu bentuk menarik permaidani dari bawah seseorang – bukan pengalaman yang menyenangkan, tetapi sebaliknya tidak bertimbang rasa. Jika anda mesti memadamkan komitmen yang sudah umum, beritahu pasukan atau penyumbang projek anda terlebih dahulu supaya mereka tahu perkara yang sedang berlaku. Dengan cara ini, semua orang sedar dan boleh menyesuaikan kerja mereka dengan sewajarnya.

Gunakan Revert untuk Repo Awam

Jika anda masih mahu membuat asal perubahan dalam repositori awam, bukannya memadamkan komit secara kekal, anda boleh mengembalikan gabungan dalam Git. Tidak seperti git reset, yang secara berkesan menulis semula sejarah, “git revert” mencipta komit baharu yang membatalkan perubahan yang dibuat dalam komit sebelumnya.

Oleh itu, menggunakan arahan ini adalah lebih selamat dan lebih telus, terutamanya apabila bekerja dengan orang lain. Anda secara terbuka menyampaikan kepada ahli pasukan anda bahawa anda mungkin telah melakukan kesilapan dan memberikan kembali komitmen untuk membetulkannya. Jika anda menolak komit dengan pepijat yang ketara, “git revert” membolehkan anda menafikan dengan cepat kesan pepijat itu sambil mengekalkan sejarah projek itu. Melakukannya mengekalkan integriti sejarah projek dan memastikan repositori tempatan semua orang konsisten dengan alat kawalan jauh.

Semak Semula Sebelum Memadam

Salah satu risiko terbesar apabila memadamkan komitmen dalam Git ialah kehilangan masa dan usaha yang anda lakukan untuk komitmen itu. Untuk mengelakkan ini, semak semua perubahan dalam setiap komit yang ingin anda alih keluar. Gunakan “git log atau git show [commit hash]” untuk memeriksa komitmen. Jika anda mengalih keluar komit yang menambahkan beberapa fungsi pada kod anda, pastikan projek anda tidak memerlukan fungsi ini untuk berfungsi atau ia direplikasi di tempat lain.

Berkomitmen kepadanya

Terdapat banyak sebab untuk memadamkan komitmen pada Git, seperti memastikan sejarah anda kemas, membuat asal kesilapan yang mengelirukan atau memastikan maklumat sensitif anda selamat daripada mengintip. Walau apa pun sebabnya, ingat bahawa terdapat dua cara untuk melakukannya – “git reset” dan “git revert,” setiap satu mempunyai tujuan yang berbeza, jadi pilih yang sesuai untuk projek anda. Anda juga boleh menamakan semula cawangan Git untuk kejelasan tambahan.

Pernahkah anda terpaksa memadamkan komit dalam Git? Apakah pengalaman anda, dan adakah anda mempunyai sebarang petua untuk dikongsi? Tinggalkan komen di bawah dan teruskan perbualan.