Jika Anda salah satu di antara jutaan di komunitas pengembang, maka kemungkinan besar Anda sudah pernah mendengar tentang konsep kontrol versi. Ini adalah alat atau sistem yang ampuh yang membantu Anda mengurus pekerjaan Anda, memungkinkan Anda untuk bergerak di sekitar file, dokumen, dan kumpulan informasi lainnya yang terkait dengan proyek Anda dengan cepat. Dan ada banyak alat untuk jenis pekerjaan seperti itu di pasaran, baik hak milik maupun sumber terbuka. Git adalah salah satu sistem kontrol versi yang paling populer dan banyak digunakan di dunia saat ini dan sejumlah besar proyek bergantung pada Git untuk kontrol versi. Git adalah sistem kontrol versi terdistribusi sumber terbuka dan gratis yang dirancang untuk melacak perubahan dalam kode sumber selama pengembangan perangkat lunak.
Proyek Git diwakili oleh struktur data yang disebut repositori di mana semua informasi yang terkait dengan proyek disimpan termasuk riwayat lengkap proyek sejak awal. Ini melacak semua perubahan yang dilakukan ke file dari waktu ke waktu, membangun timeline saat Anda melanjutkan proyek. Repositori pada gilirannya terdiri dari sekumpulan snapshot individual dari konten proyek - kumpulan file dan repositori - yang disebut commit. Ketika Anda ingin berbagi pengembangan proyek Anda dengan dunia, Anda harus mendorongnya ke jarak jauh yang memiliki akses tulis. Cabang lokal Anda tidak secara otomatis disinkronkan ke repositori jarak jauh - Anda harus mendorong cabang yang ingin Anda bagikan secara eksplisit.
Git menganggap datanya lebih seperti sekumpulan snapshot, seperti sistem file mini atau versi proyek yang disebut commit. Setiap kali Anda berkomitmen, atau menyimpan keadaan proyek Anda kapan saja, Git pada dasarnya mengambil snapshot dari apa yang tampak seperti file Anda saat ini dan menyimpan referensi ke snapshot itu. Objek komit menyimpan metadata untuk setiap perubahan yang dilakukan pada repositori, termasuk pembuat, komitter, tanggal komit, dan pesan log. Setiap komit menunjuk ke objek pohon yang menangkap keadaan repositori pada saat komit dilakukan, semua dalam satu snapshot lengkap. Saat Anda membuat perubahan pada kode di sepanjang jalan, Anda membuat beberapa komitmen - komit terpisah untuk setiap perubahan yang Anda buat. Git memberikan masing-masing komit ID unik yang melacak apa, kapan dan siapa dari perubahan yang Anda buat.
Setiap pengembang memiliki repositori pribadi untuk melacak perubahannya. Anda membuat perubahan secara lokal dan saat Anda siap membaginya dengan pengembang lain, Anda mendorongnya kembali ke repositori yang Anda semua bagikan. Commit menyimpan perubahan yang Anda buat hanya ke repositori lokal tetapi tidak ke repositori jarak jauh. Komit Anda tidak secara otomatis disinkronkan ke repositori jarak jauh - Anda harus secara eksplisit mendorong komit yang ingin Anda bagikan. Ketika Anda menggunakan perintah push, Anda menerapkan perubahan Anda ke repositori hulu. Setiap proyek open source memiliki caranya sendiri untuk menerima perubahan. Beberapa proyek menggunakan sistem kontrol versi terdistribusi penuh di mana hanya satu orang yang bisa mendorong perubahan ke repositori utama, sementara ada model repositori bersama di mana semua pengembang dapat mendorong ke repositori bersama.
- Mendorong datang setelah melakukan. Git mengkomit catatan dan melacak perubahan ke repositori dengan setiap komit menunjuk ke objek pohon yang menangkap keadaan repositori pada saat komit dilakukan, semua dalam satu snapshot lengkap. Tetapi commit menyimpan perubahan hanya ke repositori lokal tetapi tidak ke repositori jarak jauh. Git push memperbarui perubahan yang Anda komit dan memungkinkan Anda mengirimnya ke repositori jarak jauh di mana semua pengembang dapat mengaksesnya. Ketika Anda menggunakan perintah push, itu hanya memperbarui perubahan Anda ke repositori hulu.
- Git commit adalah makna lokal, mereka dicatat hanya pada mesin tempat terjadinya komit. Perintah "git commit" digunakan untuk memberi tahu Git untuk menyimpan perubahan Anda ke repositori lokal dan Anda harus secara khusus memberi tahu Git perubahan yang ingin Anda sertakan dalam komit sebelum menggunakan perintah "git commit". Anda dapat menggunakan perintah “git push” untuk mendorong komit pada repositori lokal ke repositori jarak jauh. Perintah "push" memperbarui komitmen lokal baru pada server jarak jauh. Push membutuhkan dua argumen: nama jarak jauh (asal) dan nama cabang (master).
Singkatnya, komit adalah unit dasar perubahan dalam Git. Tidak seperti model kontrol versi terpusat lainnya, Git menganggap datanya lebih seperti serangkaian snapshot yang disebut commit. Mereka seperti snapshot dari seluruh konten repositori, bersama dengan semua informasi yang berkaitan dengan proyek dan hubungan dari status repositori ini dengan status rekaman lainnya karena konten telah berkembang seiring waktu. Objek komit menyimpan metadata untuk setiap perubahan yang dilakukan pada repositori, termasuk pembuat, komitter, tanggal komit, dan pesan log. Tetapi commit menyimpan perubahan hanya ke repositori lokal tetapi tidak ke repositori jarak jauh. Git push memperbarui perubahan yang Anda komit dan memungkinkan Anda mengirimnya ke repositori jarak jauh di mana semua pengembang dapat mengaksesnya.