Git Commit: Kelas Master
Diterbitkan: 2023-02-26 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.
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"
Untuk memverifikasi nama Anda telah ditetapkan, gunakan perintah ini.
git config --nama pengguna global
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
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
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"
Jika kami menggunakan perintah git log
kami dapat meninjau detail komit, dalam urutan kronologis, dengan komit terbaru di bagian atas daftar.
log git
Komit ditampilkan dalam less
.
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
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"
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
Sekarang mari kita jalankan perintahnya.
git komit -a --dry-run
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
Kami sekarang dapat melakukan commit
, dan memperbarui cabang ini.
git commit -a -m "Menambahkan fungsi pra-parser"
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
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.
Untuk memperbaikinya, kami akan menggunakan opsi --amend
seperti ini.
git commit --amend -m "Identifikasi frasa yang dioptimalkan"
Jika kita menggunakan git log
sekali lagi, kita dapat melihat komit lama telah diganti dengan yang baru dengan pesan komit yang telah diperbaiki.
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
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~
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
Kita perlu mengkomit file lain yang tersisa di index.
git commit -m "Tweak Eksperimental"
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
:
Salin referensi itu dan gunakan dalam perintah revert
:
git kembalikan e5bd4560aef8164c6ca9d6d4620b9db7f66aecc8
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.
Saat Anda puas dengan pesan pengembalian Anda, simpan file dan keluar dari editor. Di nano, Anda melakukan ini dengan "Ctrl+O", dan "Ctrl+X."
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