Git Commit: Kelas Master

Diterbitkan: 2023-02-26
Laptop dengan latar belakang biru menampilkan prompt perintah Linux.
fatmawati achmad zaenuri/Shutterstock.com
Perintah Git commit menyimpan salinan perubahan dari direktori kerja Anda di repositori Git Anda. Tapi itu juga bisa digunakan untuk mengubah komit yang ada dan mengembalikan komit juga.

Persyaratan dasar dari setiap sistem kontrol versi adalah menyimpan versi file yang berbeda untuk Anda. Di Git, perintah yang melakukan ini adalah commit . Ini semua yang perlu Anda ketahui.

Daftar isi

Apa itu Komit di Git?
Mengkonfigurasi Perintah komit
Menggunakan Perintah komit
Komitmen Dasar
File Pementasan Otomatis
Pementasan dan Komitmen pada Waktu yang Sama
Berkomitmen ke Cabang Berbeda
Membuat Perubahan pada Komitmen
Menghapus Perubahan Dari Komit
Mengembalikan Seluruh Komit
Pisau Git Swiss Army

Apa itu Komit di Git?

Komit adalah rangkaian snapshot yang dibuat sepanjang siklus hidup proyek yang menyusun riwayat pengembangannya. Komit adalah apa yang memungkinkan kami untuk mengekstrak versi proyek seperti pada titik yang berbeda di masa lalu. Mengapa itu penting?

Sistem kontrol versi (VCS) paling umum digunakan dengan kode sumber perangkat lunak dan proyek pengembangan. Tetapi mereka dapat digunakan dengan sukses dengan kumpulan file teks apa pun, seperti file Markdown yang berisi bab-bab dari sebuah buku.

Anda mungkin tidak ingin setiap file dalam direktori proyek Anda ditangani oleh VCS, jadi Anda harus dapat menominasikan file yang ingin dikontrol versinya. Ini menambahkannya ke tampilan kontrol versi proyek. Mereka akan dipantau untuk perubahan.

Cara lain untuk mencapai ini adalah dengan menggunakan daftar abaikan. Ini memberi tahu Git file, direktori, atau jenis file mana yang harus selalu diabaikan.

Seiring waktu, saat file baru ditambahkan ke proyek, beberapa file akan perlu ditambahkan ke sistem kontrol versi. Di Git, ini ditangani oleh perintah add . Sebenarnya, perintah add berfungsi ganda, seperti yang akan kita lihat.

Untuk mempertahankan riwayat perubahan yang telah dibuat pada proyek, Anda secara berkala akan meminta Git untuk menyimpan snapshot keadaan proyek, menggunakan perintah commit . Di sinilah perintah add muncul kembali dalam alur kerja kita. Kami menggunakan perintah add untuk memberi tahu Git file mana yang diubah yang ingin kami sertakan dalam snapshot. Kemudian kami menggunakan commit untuk memberi tahu Git untuk membuat snapshot.

Mengkonfigurasi Perintah komit

Informasi tentang komit disimpan bersamanya, sehingga selalu mungkin untuk mengetahui siapa yang membuat komit, kapan, dan apa isi komit. Beberapa metadata ini ditangkap pada waktu komit, seperti pesan komit.

Metadata yang berkaitan dengan identitas anggota tim pengembangan dapat dikonfigurasi oleh setiap pengguna, untuk mencegah berulang kali memberikan informasi yang sama.

Untuk mengatur nama Anda secara global untuk semua repositori di komputer Anda, gunakan perintah ini.

 git config --nama pengguna global.nama "Dave McKay" 

Mengatur nama pengguna Git global

Untuk memverifikasi nama Anda telah ditetapkan, gunakan perintah ini.

 git config --nama pengguna global 

Memeriksa nama pengguna global Git

Jika Anda perlu menggunakan nama yang berbeda pada repositori tertentu, ubah ke direktori proyek dan gunakan perintah yang sama tanpa opsi --global .

 git config nama pengguna "McKay, David"
 git config nama pengguna 

Menetapkan nama pengguna Git khusus repositori

Kami sekarang memiliki nama pengguna default yang berbeda untuk repositori ini, dan nama global kami masih digunakan untuk repositori lain.

Dengan cara yang sama, kita dapat menetapkan alamat email baik secara global atau untuk satu repositori dengan menyertakan atau menghilangkan opsi --global .

 git config pengguna.email "[email protected]"
 git config --global user.email "[email protected]"
 git config pengguna.email
 git config --pengguna global.email 

Menyetel alamat email pengguna default Git global dan khusus repositori

Pengaturan ini disimpan dalam file konfigurasi. Pengaturan Global Git disimpan di "~/.gitconfig", dan pengaturan khusus repositori disimpan di file ".git/config" repositori.

Referensi commit dan menggunakan nilai-nilai ini saat beroperasi.

Menggunakan Perintah komit

Penggunaan dasar dari perintah commit adalah untuk mengambil file yang ada di area pementasan, yang dikenal sebagai indeks, dan menyimpannya sebagai komit di cabang repositori saat ini.

Komitmen Dasar

Kami punya proyek dengan file yang diubah. Kami akan menggunakan perintah add untuk mengatur file, lalu melakukan itu. Kami menggunakan opsi -m (melakukan pesan) sehingga kami dapat memberikan deskripsi singkat tentang tujuan perubahan. Jika kami tidak menggunakan opsi ini, kami diminta untuk mengirimkan pesan komit saat komit berlangsung. Lebih mudah untuk menambahkannya di baris perintah.

 git tambahkan jibber.c
 git commit -m "Teks bantuan yang diperbarui" 

Pementasan dan melakukan satu file

Jika kami menggunakan perintah git log kami dapat meninjau detail komit, dalam urutan kronologis, dengan komit terbaru di bagian atas daftar.

 log git 

Memeriksa log repositori Git

Komit ditampilkan dalam less .

Komit terbaru di bagian atas log Git

Komit telah diberi tag dengan nama dan alamat email yang kami berikan sebelumnya, dan pesan komit kami juga direkam.

File Pementasan Otomatis

Pementasan banyak file bisa memakan sedikit waktu. Pendekatan yang berbeda adalah dengan menggunakan opsi -A (all) dengan add .

Ini secara otomatis mengatur semua file yang dimodifikasi bersama dengan semua file yang saat ini tidak terlacak . Pementasan file yang tidak terlacak mengikuti pengaturan di file ".gitignore" Anda. Git tidak akan menampilkan file yang Anda beri tahu bahwa Anda tidak ingin disertakan. Terakhir, file dalam indeks yang tidak lagi berada dalam direktori kerja akan dihapus dari indeks.

Jelas, opsi -A dapat menyebabkan banyak hal terjadi sekaligus. Opsi --dry-run memberi Anda pratinjau perubahan tanpa benar-benar melakukannya.

 git add -A --dry-run 

Menggunakan --dry-run untuk mempratinjau file yang akan dipentaskan dan tidak dipentaskan

Dalam contoh kita, ini akan menampilkan dua file yang sudah dimodifikasi, dan dua file baru. Mari lanjutkan dan gunakan opsi -A sebelum kita menggunakan perintah commit .

 git tambahkan -A
 git commit -m "Penguraian yang disempurnakan" 

Melakukan perubahan dan file yang baru dibuat, setelah menggunakan opsi add -A

Kita dapat melihat bahwa secara keseluruhan empat file diubah. Dua di antaranya adalah file yang baru dibuat, yang terdaftar.

Pementasan dan Komitmen pada Waktu yang Sama

Perintah commit memiliki opsi huruf kecil -a (semua). Ini melakukan pementasan dan melakukan file dalam satu langkah.

Opsi commit -a mementaskan dan melakukan modifikasi file yang ada , dan menghapus file dari indeks jika telah dihapus dari direktori kerja Anda. Itu tidak secara otomatis menampilkan file yang tidak terlacak.

Seperti perintah add , perintah komit memiliki opsi --dry-run yang memungkinkan Anda melihat pratinjau tindakannya sebelum menjalankannya.

 git komit -a --dry-run 

Menggunakan opsi komit -a untuk mempratinjau perubahan tanpa melakukannya

Sekarang mari kita jalankan perintahnya.

 git komit -a --dry-run 

Menggunakan opsi komit -a untuk mengatur dan melakukan dalam satu langkah

File dipentaskan dan berkomitmen untuk kami.

Berkomitmen ke Cabang Berbeda

Jika Anda telah membuat beberapa perubahan pada file di direktori kerja Anda kemudian menyadari bahwa Anda tidak melakukan checkout cabang yang benar, Anda perlu membuat perubahan Anda dikomit ke cabang yang benar tanpa mempengaruhi cabang saat ini.

Git tidak memiliki perintah untuk melakukan ke cabang yang berbeda. Tetapi Anda dapat memperbaiki situasi ini dengan sedikit ketangkasan Git.

Kami akan menggunakan perintah stash Git untuk membuat salinan perubahan. Kemudian kami akan memeriksa cabang yang benar dan menerapkan perubahan dari simpanan. Untuk menerapkan perubahan yang disimpan, kami menggunakan perintah pop daripada perintah apply . Perintah pop menerapkan perubahan dan juga menghapusnya dari simpanan.

Kami telah membuat beberapa perubahan di cabang new-parser repositori kami. Mereka seharusnya dibuat di cabang classic-parser .

 simpanan git
 git checkout klasik-parser
 pop simpanan git 

Menyimpan perubahan, memeriksa cabang, dan menerapkan perubahan dari simpanan

Kami sekarang dapat melakukan commit , dan memperbarui cabang ini.

 git commit -a -m "Menambahkan fungsi pra-parser" 

Melakukan perubahan yang diambil dari simpanan

Jika kita kembali ke cabang new-parser kita dapat melihat bahwa itu sudah diperbarui, artinya perubahan telah dihapus dari direktori kerja Anda, dan repositori serta file Anda telah disinkronkan.

 git checkout parser baru
 status git 

Memeriksa status cabang untuk memastikannya mutakhir

TERKAIT: Cara Memperbarui dan Memelihara Cabang Git Terpisah

Membuat Perubahan pada Komitmen

Jika Anda perlu memperbaiki pesan komit Anda—mungkin Anda menemukan salah ketik di dalamnya—atau Anda lupa menampilkan file yang seharusnya disertakan dalam komit, Anda dapat menggunakan opsi --amend untuk memperbaikinya. Peringatannya adalah, ini tidak boleh digunakan pada komit yang telah didorong ke repositori jarak jauh.

Dalam pesan komit terakhir kami, "fraze" seharusnya menjadi "frasa". Jika kita menggunakan git log kita bisa melihat ini.

Log Git dengan jenis yang disorot

Untuk memperbaikinya, kami akan menggunakan opsi --amend seperti ini.

 git commit --amend -m "Identifikasi frasa yang dioptimalkan" 

Menggunakan opsi komit --amend untuk memperbaiki pesan komit

Jika kita menggunakan git log sekali lagi, kita dapat melihat komit lama telah diganti dengan yang baru dengan pesan komit yang telah diperbaiki.

Log Git menampilkan pesan komit yang dikoreksi

Jika kita ingin menambahkan file yang lupa kita stagekan, kita dapat mengkomit file tersebut sehingga muncul sebagai bagian dari komit sebelumnya.

Kami akan menggunakan add untuk mementaskan file, lalu membuat komit dengan opsi --amend . Opsi --no-edit berarti kita tidak perlu memberikan pesan komit baru. Pesan komit sebelumnya dipertahankan.

 git tambahkan jibber.c
 git komit --amend --no-edit 

Mengkomit file ke komit sebelumnya

Menghapus Perubahan Dari Komit

Jika Anda secara tidak sengaja melakukan stage dan melakukan file yang tidak Anda inginkan, Anda dapat menghapus file tersebut dari komit menggunakan perintah reset . Kami akan mengatur ulang komit kembali ke area pementasan, atau index. Kemudian kami akan menghapus file tersebut, dan mengomit ulang file lainnya.

Untuk mengatur ulang komit terakhir ke area pementasan, kami menggunakan perintah reset --soft . HEAD~ adalah kependekan dari "komit di belakang HEAD dari garis waktu komit proyek", atau dalam bahasa Inggris, "komit terakhir".

 git reset --soft HEAD~ 

Mengirim komit terakhir kembali ke area pementasan

Untuk menghapus file yang seharusnya tidak disertakan, kami menggunakan perintah reset --mixed . Ini mengatur ulang perubahan tersebut kembali ke direktori kerja, membuat ulang file yang dimodifikasi sebagai file yang tidak dipentaskan dan tidak dikomit.

 git reset --mixed jibber.c 

Menghapus file dari area pementasan Git

Kita perlu mengkomit file lain yang tersisa di index.

 git commit -m "Tweak Eksperimental" 

Mengkomit file yang tetap berada di area pementasan

Dua file lain yang ada di komit asli dikomit ulang untuk kami.

TERKAIT: Cara Memperbaiki, Mengedit, atau Membatalkan Komitmen Git (Mengubah Riwayat Git)

Mengembalikan Seluruh Komit

Terkadang membatalkan seluruh komit adalah hal termudah untuk dilakukan. Itu mengembalikan direktori kerja dan repositori Anda ke keadaan semula sebelum Anda berkomitmen.

Kita perlu menggunakan ID referensi hash komit. Kami dapat menemukan ini menggunakan git log :

Log Git dengan pengidentifikasi komit disorot

Salin referensi itu dan gunakan dalam perintah revert :

 git kembalikan e5bd4560aef8164c6ca9d6d4620b9db7f66aecc8 

Mengembalikan komit yang diidentifikasi oleh ID komitnya

Ini akan membuka editor default Anda sehingga Anda dapat mengedit pesan pengembalian. Ada pesan default yang dimasukkan untuk Anda. Anda dapat menggunakan ini, atau mengeditnya sesuai keinginan Anda.

Mengedit pesan pengembalian, dengan pesan default disorot

Saat Anda puas dengan pesan pengembalian Anda, simpan file dan keluar dari editor. Di nano, Anda melakukan ini dengan "Ctrl+O", dan "Ctrl+X."

Tindakan pengembalian yang telah selesai, membatalkan seluruh komit

Menggunakan git log sekali lagi, kita dapat melihat bahwa komit baru telah ditambahkan yang membatalkan perubahan komit yang dikembalikan.

Pisau Git Swiss Army

Jelas, commit adalah salah satu perintah Git yang paling penting. Itu bisa melakukan banyak hal, jadi ada banyak hal yang harus dipelajari. Memahami fitur-fiturnya yang jarang digunakan menghabiskan waktu dengan baik. Saat Anda perlu memperbaiki kesalahan—saat ini—Anda akan senang karena telah mempersiapkannya jauh-jauh hari.

TERKAIT: Cara Menggunakan penggabungan Git