diskusi.tech (beta) Community

loading...
Cover image for Mengenal Git

Mengenal Git

genpati profile image genpati ・Updated on ・7 min read

Update :

  • 15/12/2020 : Menambahkan emoji, memperbaiki narasi kata & istilah, menambahkan link sumber informasi

Pada kesempatan kali ini, penulis akan membagikan informasi berkaitan dengan Git, GitLab dan Git Flow yang di bagi menjadi 3 artikel dalam Git Series 🌊. Informasi ini telah di gunakan pada acara DSC Jogja 2020 dengan judul Let's Connect With Git

Outline Pembahasan

Mengenal Git : Sebagai Version Kontrol
Mengenal Git : 3 status dalam menyimpan file
Mengenal Git : Install & Menjalankan Git
Mengenal Git : Command Line
Mengenal Git : Ignore file
Ringkasan
Sumber

Mengenal Git : Sebagai Version Control System

Git adalah sistem versi kontrol terdistribusi gratis dan open source yang dirancang untuk menangani mulai dari proyek kecil hingga sangat besar dengan kecepatan dan efisiensi.

Apa itu versi kontrol dan kenapa versi kontrol penting dalam software development ?

Sebagai contoh, Budi bekerja sebagai backend developer dalam sebuah tim dan ia ditugaskan membuat fitur Login menggunakan username dan password oleh PM. Fitur awal sudah jadi dan digabungkan menjadi satu ke production, lalu ada pengembangan tambahan dengan menambahkan fitur oauth login dengan google, lalu fitur tersebut sudah jadi dan di gabungkan menjadi satu ke production. Namun dengan alasan tertentu, fitur login dengan google ingin di non-aktifkan untuk sementara.

Di sini kita bisa lihat peran versi kontrol, dari pada budi menghapus kode yang telah dibuat, budi bisa memilih kembali ke versi fitur yang sebelumnya dalam contoh di atas adalah kembali ke fitur Login menggunakan username dan password. Dan ketika fitur login dengan google ingin digunakan lagi, budi bisa memilih ke versi tersebut kembali.

Jadi versi kontrol adalah sistem yang merekam perubahan pada file, ataupun sekumpulan file dari waktu ke waktu sehingga developer dapat melihat dan memilih versi tertentu ketika dibutuhkan, Dengan begitu sebenarnya yang dilakukan oleh Version Control System dalam hal ini Git adalah hanya menambahkan data.

Mengenal Git : 3 status dalam menyimpan file

Alt Text

Lalu bagaimana Git menyimpan file ? Berikut ini adalah hal utama yang harus kita ingat, Git memiliki tiga status saat file kamu disimpan, yaitu modified, staged, commited

modified : yang berarti kamu telah mengubah file tetapi belum memasukkannya ke database.
staged : yang berarti kamu telah menandai file yang dimodifikasi dalam versi saat ini untuk masuk ke snapshot commit kamu berikutnya.
commited : yang berarti data disimpan dengan aman di database lokal kamu.

dari 3 status tadi, membawa kita ke tiga bagian utama dari proyek Git, working directory, staging area, .git directory

Working directory : adalah checkout tunggal dari satu versi proyek. File-file ini ditarik dari database yang dikompresi di direktori Git dan ditempatkan pada disk untuk kamu gunakan atau modifikasi.
Staging Area : adalah sebuah file, biasanya terdapat dalam direktori Git, yang menyimpan informasi tentang apa yang akan dimasukkan ke dalam commit kamu selanjutnya.
.git Direktori : adalah tempat Git menyimpan metadata dan database objek untuk proyek kamu. Ini adalah bagian terpenting dari Git, dan inilah yang disalin saat kamu menduplikasi repositori dari remote server.

jadi alur kerjanya nya adalah :

  • kamu memodifikasi proyek didalam working directory
  • kamu secara selektif menetapkan perubahan yang kamu inginkan menjadi bagian dari commit berikutnya, yang hanya menambahkan perubahan tersebut ke staging area.
  • kamu melakukan commit, yang mengambil file sebagaimana mereka berada di staging area dan menyimpan snapshot itu secara permanen ke .git direktori.

Mengenal Git : Install & Menjalankan Git

Ada banyak cara berbeda untuk menggunakan Git. Dapat menggunakan command line dan juga antarmuka pengguna grafis. Namun pada kesempatan kali ini, kita akan mencoba dasar git menggunakan command line.

Persyaratan :
Membuka Command Shell dan menginstall Git sesuai Sistem Operasi

Setelah melakukan instal Git sesuai dengan sistem operasi, selanjutnya buka command shell/Terminal.

Membuka Command Shell/Teriminal :

  • MacOS : Tekan ⌘ command + space dan ketik “terminal” untuk mencarinya
  • Windows : Klik icon pencarian pada navbar bawah dan ketik “cmd” atau "Git Bash" untuk mencarinya
  • Linux : Tekan "Super" dan pada kotak pencarian dan ketik “terminal”

Untuk yang belum terpasang dapat mengikuti tautan berikut ini, lalu jika ingin memastikan apakah sudah terpasang atau belum dapat membuka command shell/Terminal, lalu ketikan perintah berikut ini 👇

$ git --version
Enter fullscreen mode Exit fullscreen mode

Jika ada kembaliannya adalah seperti ini 👇

$ git version X.Y.Z
Enter fullscreen mode Exit fullscreen mode

maka git sudah terpasang di komputer kalian dan siap ke panduan berikut nya 👏 👏

Mengenal Git : Command Line

  • Konfigurasi Git : Sebelum dapat melakukan commit, push pada Git, hendaknya kita melakukan konfigurasi terlebih dahulu identitas kita pada Git, sehingga nanti rekat tim dapat mengetahui perubahan yang kita lakukan.
$ git config --global user.name “Your Name”
Enter fullscreen mode Exit fullscreen mode

☝️ konfigurasi ini berfugsi untuk mengatur nama yang akan dilampirkan ke commit dan tag

$ git config --global user.email “you@example.com”
Enter fullscreen mode Exit fullscreen mode

☝️ konfigurasi ini berfugsi untuk mengatur email yang akan dilampirkan ke commit dan tag

$ git config --global --list
Enter fullscreen mode Exit fullscreen mode

☝️ Menampilkan informasi konfigurasi saat ini

  • Memulai Projek : Perintah awal ketika ingin bekerja menggunakan Git. Baik membuat ataupun menyalin dari remote repository
$ git init [project name]
Enter fullscreen mode Exit fullscreen mode

☝️ Buat repositori lokal baru. Jika [nama proyek] disertakan, Git akan membuat nama direktori baru [nama proyek] dan akan menginisialisasi repositori di dalamnya. Jika [nama proyek] tidak tersedia, maka repositori baru di inisialisasi di direktori saat ini.

$ git clone [project url]
Enter fullscreen mode Exit fullscreen mode

☝️ Menyalin proyek dengan seluruh riwayat dari remote repository.

  • Perintah sehari-hari :
$ git status
Enter fullscreen mode Exit fullscreen mode

☝️ Menampilkan status direktori kerja kamu. Opsi mencakup file baru, stage, dan modified. Ini akan mengambil nama branch, pengenal commit saat ini, dan perubahan menunggu commit

$ git add [file]
Enter fullscreen mode Exit fullscreen mode

☝️ Tambahkan file ke staging area. Gunakan [.] untuk menambahkan semua file yang diubah dari direktori saat ini ke working tree.

$ git diff [file] 
Enter fullscreen mode Exit fullscreen mode

☝️ Tampilkan perubahan pada file antara working directory dan staging area.

$ git diff --staged [file] 
Enter fullscreen mode Exit fullscreen mode

☝️ Menunjukkan setiap perubahan file antara staging area dan repositori.

$ git checkout -- [file] 
Enter fullscreen mode Exit fullscreen mode

☝️ Buang perubahan dalam working directory. Operasi ini tidak dapat dipulihkan.

$ git reset [file]
Enter fullscreen mode Exit fullscreen mode

☝️ Kembalikan repositori kamu ke status kerja sebelumnya yang diketahui.

$ git commit -m [messages]
Enter fullscreen mode Exit fullscreen mode

☝️ Buat commit baru dari perubahan yang ditambahkan ke staging area. commit harus memiliki pesan untuk mengetahui perubahan apa yang dilakukan.

$ git rm [file]
Enter fullscreen mode Exit fullscreen mode

☝️ Hapus file dari working directory dan staging area.

$ git stash
Enter fullscreen mode Exit fullscreen mode

☝️ Simpan perubahan saat ini di working directory kamu ke dalam stash untuk digunakan nanti.

$ git stash pop
Enter fullscreen mode Exit fullscreen mode

☝️ Kembalikan/keluarkan perubahan yang disimpan didalam stash ke dalam working directory, dan hapus stash.

$ git stash drop
Enter fullscreen mode Exit fullscreen mode

☝️ Hapus stash tertentu dari semua stashes kamu sebelumnya.

  • Git Branching Model :
$ git branch [-a] 
Enter fullscreen mode Exit fullscreen mode

☝️ Tampilkan semua branch lokal di repositori. Dengan [-a] akan menampilkan semua branch (dengan branch pada remote repository).

$ git branch [branch_name] 
Enter fullscreen mode Exit fullscreen mode

☝️ Buat branch baru, dengan mereferensikan HEAD saat ini

$ git checkout [-b][branch-name]
Enter fullscreen mode Exit fullscreen mode

☝️ Pindah working directory ke branch yang ditentukan. Dengan [-b] Git akan membuat branch [branch-name] jika tidak ada.

$ git merge [branch-name]
Enter fullscreen mode Exit fullscreen mode

☝️ Gabungkan dengan branch tertentu [branch-name] ke branch kamu saat ini.

$ git branch -d [branch-name] 
Enter fullscreen mode Exit fullscreen mode

☝️ Hapus branch [branch-name], jika sudah di merge dengan yang lain. Gunakan [-D] ketimbang [-d] untuk penghapusan secara paksa.

  • Tinjau Pekerjaan :
$ git log [-n count]
Enter fullscreen mode Exit fullscreen mode

☝️ Daftar riwayat commit dari branch saat ini. [-n] menghitung batas daftar untuk melakukan [n] terakhir.

$ git log --oneline --graph --decorate
Enter fullscreen mode Exit fullscreen mode

☝️ Melihat rangkuman log dengan label referensi dan history grafik. Satu commit per baris.

$ git log ref.. 
Enter fullscreen mode Exit fullscreen mode

☝️ Buat daftar commit yang ada di branch saat ini dan tidak digabung menjadi ref, ref bisa nama branch atau nama tag.

$ git log ..ref 
Enter fullscreen mode Exit fullscreen mode

☝️ Buat daftar commit yang ada di ref dan tidak di merge ke branch saat ini.

$ git reflog 
Enter fullscreen mode Exit fullscreen mode

☝️ Daftar operasi (mis. checkouts atau commit) yang dilakukan di repositori lokal

  • Memberi Tag pada commit :
$ git tag 
Enter fullscreen mode Exit fullscreen mode

☝️ Tampilkan semua tag

$ git tag [name] [commit sha]
Enter fullscreen mode Exit fullscreen mode

☝️ Buat referensi tag bernama [name] untuk commit saat ini. Tambahkan [commit sha] untuk menandai commit tertentu, bukan yang saat ini.

$ git tag -a [name] [commit sha] 
Enter fullscreen mode Exit fullscreen mode

☝️ Buat objek tag bernama [name] untuk commit saat ini.

$ git tag -d [name] 
Enter fullscreen mode Exit fullscreen mode

☝️ Hapus tag [name] dari repositori lokal.

  • Mengembalikan Perubahan :
$ git reset [--hard] [target reference] 
Enter fullscreen mode Exit fullscreen mode

☝️ Mengalihkan branch saat ini ke [target references], meninggalkan perbedaan sebagai perubahan yang tidak mengikat. Saat [--hard] digunakan, semua perubahan akan dibuang.

$ git revert [commit sha] 
Enter fullscreen mode Exit fullscreen mode

☝️ Buat commit baru, kembalikan perubahan dari commit yang ditentukan. Ini menghasilkan pembalikan posisi pada perubahan.

  • Menyinkronkan Repository :
$ git fetch [remote]
Enter fullscreen mode Exit fullscreen mode

☝️ Ambil perubahan dari remote repository, tetapi tidak merge perubahannya ke working directory saat ini

$ git fetch --prune [remote]
Enter fullscreen mode Exit fullscreen mode

☝️ Hapus referensi remote yang telah dihapus dari remote repository.

$ git pull [remote]
Enter fullscreen mode Exit fullscreen mode

☝️ Ambil perubahan dari remote repository dan merge branch saat ini dengan upstreamnya.

$ git push [--tags] [remote] 
Enter fullscreen mode Exit fullscreen mode

☝️ kirimkan perubahan pada lokal repository ke remote repository. Gunakan [--tags] untuk mengirimkan tag.

$ git push -u [remote] [branch] 
Enter fullscreen mode Exit fullscreen mode

☝️ kirimkan branch lokal ke remote repository. Setel salinannya sebagai upstream

Mengenal Git : Ignore file

File ini berguna untuk mengabaikan folder maupun file tertentu yang dapat kita atur. Sebagai contoh umumnya file yang di abaikan adalah seperti cache, packages ataupun kredential yang akan ikut terkirim ke remote repository. Sebagai contoh, isi dari file gitignore adalah sebagai berikut :

$ cat .gitignore
__pycache__
node_modules/
.env
/logs/*
!logs/.gitkeep
/tmp
*.swp
Enter fullscreen mode Exit fullscreen mode

Dan juga sudah disediakan template dari .gitignore sesuai dengan bahasa ataupun framework yang akan kamu gunakan dalam pengembangan, sehingga kamu tidak perlu memikirkan apa saja yang harus di abaikan.

Ringkasan

Sehingga secara gambaran umum bagaimana kita bekerja didalam Git dengan perintah command line adalah sebagai berikut ini
Alt Text

Dan berikut inilah ilustrasi dalam bentuk grafis yang menjelaskan perintah sehari-hari di atas.
Alt Text

Sumber Informasi

Instal Git
Penjelasan & Status dalam direktori git
Download GitBash (Windows)
Git Cheat Sheat

Discussion

pic
Editor guide