MASAGUS DANANG IRIANDI
Git digunakan untuk menyimpan perubahan yang terjadi pada source code atau dikenal juga dengan sebutan sistem version control, ini digunakan untuk developers untuk menganalisa kembali source code sesuai versinya. Sistem version control memungkinkan developer untuk mengembalikan source code ke keadaan awal, seluruh project ke keadaan awal, membandingkan perubahan pada source code dari berbagai versi, memungkinkan developer untuk mengetahui siapa yang mengubah source code, dan lain sebagainya. Dengan sistem version control (VCS) developer dapat mudah memulihkan masalah yang mungkin terjadi.
Direktori git merupakan tempat penyimpanan metadata dan database. Direktori git merupakan apa yang pengguna salin bila melakukan kloning repositori dari perangkat lain. Selain direktori git, terdapat direktori kerja yaitu checkout dari sebuah versi dari project pengguna. Berkas akan diambil dari database yang dikompresi dalam direktori git dan disimpan di disk untuk digunakan. Staging area atau snapshot dari folder kerja pengguna yang akan disimpan pada commit merupakan salah satu fitur git, dengan fitur ini kita dapat memilih perubahan mana yang ingin dicommit dan tidak.Dalam pengerjaannya, developer ingin mengubah source code pada direktori kerja suatu project yang dilakukan, developer maka akan membawa berkas source code tersebut ke stage dan menambahkan snapshot ke staging area, lalu developer akan melakukan commit pada perubahan yang diinginkan dan menyimpan snapshotnya ke direktori git. Proses ini terjadi pada komputer lokal developer yang mengerjakan. Terdapat server yang menyediakan layanan repository yang disebut juga dengan remote. Remote menyediakan tempat agar perubahan terjadi tidak hanya di komputer lokal dari developer yang terlibat, tetapi developer lain pun dapat terlibat menggunakan perantara server atau remote tersebut. Developer dapat menyimpan perubahan project di komputer lokal, lalu menyimpan repositorynya ke server.
GitHub merupakan penyimpanan untuk repositori git, atau pusat manajemen kolaborasi bagi developer untuk mengkolaborasikan proyeknya. Repositori git umumnya disimpan di github, dan umumnya proyek menggunakan github untuk menyimpan git, melacak masalah, meninjau kode, dsbg. GitHub dikembangkan dengan alur kerja kolaborasi, salah satu alur kerja kolaborasi yang ada yaitu “Pull Requests”. Alur kerja ini bisa saja bila kita berkolaborasi dalam tim dalam satu repositori bersama, atau dalam suatu perusahaan besar dimana kita dapat berkolaborasi dengan skema forking project. Pertama kita dapat membuat cabang topic dari master, kita dapat membuat commit untuk mengembangkan projek, kita dapat mem-push cabang ke dalam proyek github, lalu kita dapat melakukan pull requests, setelahnya kita dapat berdiskusi dan kembali melanjutkan commit, dan pemilik projek dapat menggabungkan atau menolak pull requests. Kita dapat membuat suatu repositori baru untuk membagikan code proyek kita. Bila bisa mengklik button “New repository”, setelahnya kita akan diarahkan ke halaman baru dimana kita bisa mengisi nama proyek kita dan mengisi informasi tambahan lainnya. Setelah itu kita dapat mengklik button “Create Repository”. Karena kita belum memiliki code di dalamnya, github akan menunjukan cara bagaimana membuat repository git baru, atau menghubungkannya ke proyek git yang sudah ada. Setelah proyek kita telah berada di github, kita dapat membagikan link ke proyek siapapun yang ingin kita bagi. Jika kita berkolaborasi dengan orang lain yang ingin kita berikan akses commit, kita harus menambahkannya sebagai kolaborator atau menambahkannya ke proyek kita. Dengan begitu kita dapat memberikan akses push dan mereka dapat membaca serta menulis sesuatu di proyek dan repositori git. Kita dapat mengklik button “settings”, dan memilih button “collaborators”, lalu kita dapat mengetikan username mereka, dan mengklik “add collaborator”. Kita dapat menambahkan pengguna sebagai kolaborator sebanyak-banyaknya tanpa ada batasan. Bila kita ingin menghapus mereka sebagai kolaborator kita hanya tinggal mengklik “X” yang ada di sebelah kanan tiap username.
Hooks dan Services dapat di lihat di halaman setting repositori. Di bawah “Webhooks and Services” kita dapat melihat “Services and Hooks configuration section”. Kita dapat memilih berbagai layanan, beberapa diantaranya ada yang terintegrasi dengan sistem komersial atau sistem open source. Beberapa diantaranya adalah layanan integrasi berkelanjutan, pelacakan masalah dan bug, sistem chat room, dan sistem dokumentasi. Pertama email hook, jika kita memilih “email” dari dropdown “Add service”, kita akan melihat halaman konfigurasi “Email service configuration”. Dalam halaman ini, bila kita mengklik button “add service”, alamat email yang kita masukkan akan mendapat kiriman notifikasi setiap kali ada pengguna yang mem-push ke dalam repositori. Services dapat mengetahui berbagai hal yang teradi, namun umumnya hanya kegiatan push atau yang berhubungan dengan data tersebut. Jika terdapat sistem yang kita gunakan yang ingin kita integrasikan dengan GitHub, kita dapat mengeceknya disini untuk melihat apakah ada layanan intergrasi yang tersedia. Misal, jika kita menggunakan Jenkins untuk mengecek codebase, kita bisa mengaktifkan layanan integrasi Jenkins untuk melakukan pengecekan tiap kali ada pengguna yang melakukan push ke repositori kita. Atau misal kita ingin menggunakan vercel, kita juga bisa mengintegrasikannya di GitHub.