Perintah Git Commit Dijelaskan

The git commitperintah akan menyimpan semua dipentaskan perubahan, bersama dengan penjelasan singkat dari pengguna, dalam “komit” ke repositori lokal.

Komit adalah inti dari penggunaan Git. Anda dapat menganggap komit sebagai snapshot dari proyek Anda, di mana versi baru dari proyek itu dibuat di repositori saat ini. Dua fitur penting dari komit adalah:

  • Anda dapat mengingat perubahan yang dilakukan di kemudian hari, atau mengembalikan proyek ke versi itu (lihat Git checkout)
  • jika beberapa komit mengedit bagian yang berbeda dari proyek, mereka tidak akan menimpa satu sama lain bahkan jika pembuat komit tidak saling menyadarinya. Ini adalah salah satu keuntungan menggunakan Git dibandingkan alat seperti Dropbox atau Google Drive.

Pilihan

Ada sejumlah opsi yang dapat Anda sertakan git commit. Namun, panduan ini hanya akan membahas dua opsi paling umum. Untuk daftar pilihan yang lengkap, silakan lihat dokumentasi Git.

Opsi -m

Opsi yang paling umum digunakan dengan git commitadalah -mopsi. The -msingkatan pesan. Saat menelepon git commit, diperlukan untuk menyertakan pesan. Pesan tersebut harus berupa deskripsi singkat tentang perubahan yang dilakukan. Pesan harus berada di akhir perintah dan harus dibungkus dengan kutipan " ".

Contoh cara menggunakan -mopsi:

git commit -m "My message"

Output di terminal Anda akan terlihat seperti ini:

[master 13vc6b2] My message 1 file changed, 1 insertion(+)

CATATAN: Jika-mtidak disertakan dengangit commitperintah, Anda akan diminta untuk menambahkan pesan di editor teks default Anda - lihat 'Menggunakan pesan komit mendetail' di bawah.

Opsi -a

Opsi populer lainnya adalah -aopsi. The -aberdiri untuk semua. Opsi ini secara otomatis mengatur semua file yang dimodifikasi untuk dikomit. Jika file baru ditambahkan, -aopsi tidak akan menampilkan file baru tersebut. Hanya file yang diketahui oleh repositori Git yang akan dikomit.

Sebagai contoh:

Katakanlah Anda memiliki README.mdfile yang telah dikomit ke repositori Anda. Jika Anda membuat perubahan pada file ini, Anda bisa menggunakan -aopsi dalam perintah komit Anda ke stage dan menambahkan perubahan ke repositori Anda. Namun, bagaimana jika Anda juga menambahkan file baru bernama index.html? The -apilihan tidak akan menggelar index.htmlkarena saat ini tidak ada di repositori. Ketika file baru telah ditambahkan, git addperintah harus dipanggil untuk menahapkan file sebelum mereka dapat dikomit ke repositori.

Contoh cara menggunakan -aopsi:

git commit -am “My new changes”

Output di terminal Anda akan terlihat seperti ini:

[master 22gc8v1] My new message 1 file changed, 1 insertion(+)

Menggunakan pesan komit mendetail

Meskipun git commit -m "commit message"berfungsi dengan baik, namun dapat berguna untuk memberikan informasi yang lebih detail dan sistematis.

Jika Anda melakukan tanpa menggunakan -mopsi, git akan membuka editor teks default Anda dengan file baru, yang akan menyertakan daftar komentar dari semua file / perubahan yang dipentaskan dalam komit. Anda kemudian menulis pesan komit mendetail Anda (baris pertama akan diperlakukan sebagai baris subjek) dan komit akan dilakukan saat Anda menyimpan / menutup file.

Ingatlah:

  • Jaga agar baris pesan komit Anda kurang dari 72 karakter sebagai praktik standar
  • Sangat baik - dan bahkan disarankan - untuk menulis pesan komit multiline
  • Anda juga dapat merujuk ke masalah lain atau menarik permintaan dalam pesan komit Anda. GitHub mengalokasikan referensi nomor untuk semua permintaan dan masalah pull, jadi misalnya jika Anda ingin merujuk ke permintaan pull # 788 cukup lakukan di baris subjek atau di teks isi yang sesuai

Opsi —amend

The --amendpilihan memungkinkan Anda untuk mengubah terakhir Anda komit. Katakanlah Anda baru saja berkomitmen dan Anda membuat kesalahan dalam pesan log komit Anda. Anda dapat dengan mudah mengubah komit terbaru menggunakan perintah:

git commit --amend -m "an updated commit message"

Jika Anda lupa menyertakan file dalam komit:

git add FORGOTTEN-FILE-NAME git commit --amend -m "an updated commit message" # If you don't need to change the commit message, use the --no-edit option git add FORGOTTEN-FILE-NAME git commit --amend --no-edit

Komitmen prematur terjadi sepanjang waktu dalam perkembangan Anda sehari-hari. Sangat mudah untuk melupakan file atau bagaimana memformat pesan komit Anda dengan benar. The --amendbendera adalah cara yang nyaman untuk memperbaiki kesalahan kecil ini. Perintah ini akan menggantikan pesan komit lama dengan yang diperbarui yang ditentukan dalam perintah.

Komit yang diubah sebenarnya adalah komit yang sama sekali baru dan komit sebelumnya tidak akan lagi ada di cabang Anda saat ini. Saat Anda bekerja dengan orang lain, Anda harus mencoba untuk menghindari mengubah komit jika komit terakhir sudah didorong ke dalam repositori.

Dengan --amend, salah satu flag berguna yang dapat Anda gunakan adalah --authoryang memungkinkan Anda untuk mengubah pembuat komit terakhir yang Anda buat. Bayangkan situasi Anda belum menyiapkan nama atau email Anda dengan benar dalam konfigurasi git tetapi Anda sudah membuat komit. Dengan --authorbendera Anda dapat dengan mudah mengubahnya tanpa mengatur ulang komit terakhir.

git commit --amend --author="John Doe "

Opsi -v atau —verbose

The -vatau --verboseopsi digunakan tanpa -mpilihan. The -vpilihan dapat berguna ketika Anda ingin mengedit sebuah Git pesan komit dalam editor default sementara bisa melihat perubahan yang Anda buat untuk komit. Perintah membuka editor teks default Anda dengan template pesan komit serta salinan perubahan yang Anda buat untuk komit ini. Perubahan, atau diff, tidak akan disertakan dalam pesan komit, tetapi mereka memberikan cara yang bagus untuk mereferensikan perubahan Anda saat Anda menjelaskannya dalam pesan komit Anda.

Cara memadatkan banyak komit menjadi satu

Ini adalah fitur luar biasa rebaseyang dapat digunakan dalam interactivemode. Untuk memadatkan komitmen n terakhir menjadi satu, jalankan perintah berikut:

git rebase -i HEAD~n

That will open up a text-editor with something similar to the following:

pick commit_1 pick commit_2 pick commit_3 ... pick commit_n # Bunch of comments

Leave the first commit alone, and change the rest of the picks to squash. Save and exit the editor.

So if you wanted to squash the last three commits, you’ll first run git rebase -i HEAD~3 and then you’ll want to edit your commits to look something like this:

pick dd661ba Commit 1 squash 71f5fee Commit 2 squash f4b4bf1 Commit 3

If you’ve already pushed to a remote before squashing your commits, you’ll have to push to the remote again, with the -f flag, otherwise git will throw an error at you.

It is strongly suggested that you read the information in the opened file as there are many things you can do.

More Information:

  • Git documentation: commit