Menguasai Commit Squashing di Git:
Saat mengerjakan sebuah proyek, riwayat penerapan Anda bisa menjadi berantakan karena banyaknya komitmen kecil. Komitmen kecil ini dapat mempersulit peninjauan perubahan dan memahami riwayat proyek.
Di Git, Anda dapat menggabungkan N komitmen terakhir Anda menjadi satu komitmen, menciptakan riwayat yang lebih bersih dan mudah dikelola. Panduan ini akan memandu Anda melalui langkah-langkah untuk mencapai hal ini, sehingga membuat kontrol versi Anda lebih efisien.
Memerintah | Keterangan |
---|---|
git rebase -i HEAD~N | Memulai rebase interaktif dari N komitmen terakhir. |
pick | Mempertahankan komit apa adanya selama rebase interaktif. |
squash | Menggabungkan komit dengan komit sebelumnya selama rebase interaktif. |
sed -i '1!s/pick/squash/' .git/rebase-merge/git-rebase-todo | Secara otomatis mengganti 'pick' dengan 'squash' untuk semua kecuali komit pertama dalam daftar tugas rebase. |
git rebase --continue | Melanjutkan proses rebase setelah menyelesaikan konflik. |
git rebase --abort | Membatalkan proses rebase dan kembali ke keadaan sebelum rebase dimulai. |
HEAD~N | Mengacu pada komit N tempat sebelum HEAD saat ini. |
Memahami Git Commit Squashing
Skrip pertama menggunakan untuk memulai rebase interaktif dari N komitmen terakhir. Di layar interaktif, Anda mengganti 'pick' dengan 'squash' untuk komitmen yang ingin Anda gabungkan. Proses ini membantu menggabungkan beberapa komitmen yang lebih kecil menjadi satu, menjadikan riwayat penerapan Anda lebih bersih dan lebih mudah dikelola. Setelah mengedit, simpan dan tutup editor. Jika ada konflik, Anda menyelesaikannya dan melanjutkan .
Skrip kedua adalah skrip Bash yang mengotomatiskan proses squashing. Ini dimulai dengan memeriksa apakah sejumlah komitmen (N) disediakan. Kemudian, itu berjalan dan kegunaan untuk mengganti 'pick' dengan 'squash' untuk semua kecuali komit pertama dalam daftar tugas rebase. Hal ini memudahkan untuk menghentikan banyak penerapan tanpa mengedit file secara manual. Terakhir, melanjutkan proses rebase dengan , menangani resolusi konflik yang diperlukan secara otomatis.
Squash Beberapa Komit menjadi Satu Menggunakan Git Rebase
Perintah Git
git rebase -i HEAD~N
# Replace N with the number of commits you want to squash
# In the interactive rebase screen that appears, change 'pick' to 'squash' (or 's') for the commits you want to squash
# Save and close the editor
# Edit the commit message if needed, then save and close the editor again
# If there are conflicts, resolve them and then run
git rebase --continue
# Your last N commits are now squashed into one commit
Mengotomatiskan Commit Squashing dengan Skrip Shell
Skrip Bash
#!/bin/bash
if [ -z "$1" ]
then
echo "Usage: ./squash_commits.sh <N>"
exit 1
fi
git rebase -i HEAD~$1
# Automatically replace 'pick' with 'squash' for all but the first commit
sed -i '1!s/pick/squash/' .git/rebase-merge/git-rebase-todo
git rebase --continue
Teknik Pemadatan Git Tingkat Lanjut
Aspek penting lainnya dalam menghapus komitmen di Git adalah menangani konflik penggabungan yang mungkin timbul selama proses tersebut. Saat menggabungkan beberapa penerapan, perubahan dari penerapan yang berbeda mungkin bertentangan satu sama lain. Untuk mengatasi konflik tersebut, Git memberikan perintah seperti untuk melihat file mana yang konflik dan untuk menandainya sebagai terselesaikan. Setelah menyelesaikan konflik, Anda melanjutkan rebase dengan .
Penting juga untuk mengetahui cara membatalkan rebase jika terjadi kesalahan. Perintah menghentikan proses rebase dan mengembalikan repositori Anda ke keadaan sebelumnya sebelum rebase dimulai. Hal ini memastikan bahwa Anda dapat dengan aman membatalkan perubahan apa pun yang dibuat selama proses rebase. Memahami perintah ini dapat meningkatkan kemampuan Anda secara signifikan dalam mengelola riwayat Git yang kompleks secara efisien.
- Apa arti dari squashing commit?
- Menekan komit berarti menggabungkan beberapa komit menjadi satu komit untuk menyederhanakan riwayat komit.
- Mengapa saya harus menghentikan komitmen?
- Membatalkan komitmen dapat membuat riwayat proyek Anda lebih bersih dan mudah dibaca, terutama ketika banyak komitmen kecil digunakan.
- Bagaimana cara memulai rebase interaktif?
- Gunakan perintah , ganti N dengan jumlah komitmen yang ingin Anda hancurkan.
- Apa arti 'pick' dan 'squash' dalam rebase interaktif?
- 'Pick' mempertahankan komit apa adanya, sementara 'squash' menggabungkannya dengan komit sebelumnya.
- Bagaimana cara menyelesaikan konflik selama rebase?
- Menggunakan untuk mengidentifikasi konflik, menyelesaikannya secara manual, lalu menggunakan Dan .
- Bisakah saya membatalkan rebase jika terjadi kesalahan?
- Ya, Anda bisa menggunakannya untuk menghentikan rebase dan kembali ke keadaan sebelumnya.
- Apa manfaat menggunakan skrip Bash untuk menghilangkan komit?
- Skrip Bash mengotomatiskan proses, menghemat waktu dan mengurangi risiko kesalahan manual.
- Apakah ada cara untuk secara otomatis menghentikan komitmen dalam rebase?
- Ya, dengan menggunakan skrip untuk mengubah daftar tugas rebase , Anda dapat secara otomatis mengubah 'pick' menjadi 'squash'.
Menyelesaikan Git Commit Squashing
Menghilangkan komitmen di Git adalah teknik yang ampuh untuk menjaga riwayat proyek tetap bersih dan mudah dibaca. Baik menggunakan rebase interaktif atau mengotomatisasi dengan skrip Bash, Anda dapat menggabungkan beberapa penerapan menjadi satu penerapan, sehingga membuat log lebih mudah dikelola. Memahami cara menyelesaikan konflik dan membatalkan rebase akan menambah kemahiran Git Anda, memastikan Anda dapat menangani masalah apa pun yang muncul. Menguasai perintah dan metode ini akan meningkatkan praktik kontrol versi Anda secara signifikan.