Version Control
Batch #5 Android Studi Independent
Apa itu git
- Sistem pengontrol versi atau Version Control System (VCS) yang digunakan untuk
memantau perubahan pada file dan folder dalam suatu proyek software.
- Pengembang software dapat dengan mudah melacak perubahan yang terjadi pada
file-file yang ada dalam proyek, mengembalikan file ke versi sebelumnya, dan juga
berkolaborasi dengan tim pengembang yang lain dalam suatu proyek.
- Github, Bitbucket, Gitlab, dll
● Registrasi akun GitHub
● Install git dengan download di link
Langkah-langkah ●
[Link]
Inisialisasi akun git menggunakan
●
GitHub
●
Three State
- Git memiliki tiga state terhadap file kita: modified, staged dan commited
- Modified artinya kita mengubah (menambah,mengedit, menghapus) file, namun
belum disimpan secara permanen ke repository
- Staged artinya kita menandai modifikasi yang kita lakukan terhadap file akan
disimpan secara permanen ke repository
- Commited artinya data sudah aman disimpan di repository
Three Section
- Tiga state sebelumnya di dalam git dilakukan di section yang berbeda-beda, yaitu
Working directory, Staging Area dan Repository.
- Saat kita melakukan modifikasi file, itu dilakukan di working directory.
- Staging Area Merupakan Section dimana file sudah disiapkan untuk disimpan
secara permanen, di Staging Area semua informasi perubahan file akan disimpan
- Repository merupakan tempat dimana semua file dan database riwayat versi file
disimpan.
Diagram Three tree
Workflow
- Sekarang kita tahu tentang arsitektur Three tree, sekarang pertanyaannya,
bagaimana alur kerja menggunakan Git.
- Secara sederhana, setiap perubahan akan kita lakukan di working directory akan
dibaca oleh git secara otomatis.
- Jika ada yang mau kita siapkan untuk disimpan secara permanen, kita akan bawa
perubahan tersebut ke staging index.
- Selanjutnya, kita bisa melakukan penyimpanan versi baru secara permanen ke
repository.
Diagram Workflow V1
Diagram Workflow V2
Langkah-langkah
untuk menambahkan
file
●
Menambahkan File
Langkah-langkah
untuk memindahkan
ke staging index
●
Menambahkan File
Langkah-langkah
untuk commit ke
repository
●
Menambahkan File
Latihan
-Tambahkan fi[Link], lalu commit ke repository
-Tambahkan fi[Link], lalu commit ke repository
Mengubah File
- Untuk melakukan perubahan file, kita cukup lakukan perubahan file terhadap file
yang sudah ada di repository
- Secara otomatis git bisa mendeteksi perubahan
- Sama seperti dengan menambahkan file, jika perubahan ingin kita simpan secara
permanen, kita bisa pindahkan ke staging index, lalu commit ke repository.
Ketika kita
mengubah File
●
Menambahkan File
Melihat perubahan file
- Ketika kita melakukan perubahan, git otomatis mendeteksi bahwa file tersebut
isinya sudah berubah.
- Jika kita ingin melihat perubahan yang terjadi, kita juga bisa menggunakan git
untuk melihat perubahannya dengan perintah :
git diff
Ketika kita
mengubah File
●
Menambahkan File
Latihan
-Ubah isi konten di fi[Link]
-Commit perubahan fi[Link] ke repository
-Ubah fi[Link] dan fi[Link], lalu commit semuanya ke repository
Ketika kita mengubah
File1 dan file 2
●
Menambahkan File
Ketika kita mengubah
File1 dan file 2
●
Menambahkan File
Menghapus File
- Untuk menghapous file di repository, kita cukup lakukan delete filenya di
foldernya.
- Secara Otomatis git akan mendeteksi file yang hilang
- Sama seperti menambahkan dan menghapus, jika ingin simpan secara permanen di
repository, kita harus menambahkan operasi tersebut ke staging index, lalu
commit ke repository.
Ketika kita
menghapus git status
●
Menambahkan File
Ketika kita git commit
●
Menambahkan File
Membatalkan Penambahan File
- Jika kita menambahkan file di working directory, lalu misal kita ingin membatalkan
perubahannya.
- Caranya cukup dengan, kita perlu menghapus file tersebut, atau bisa
menggunakan perintah :
Git clean -f
Ketika kita membatalkan
penambahan git status
●
Menambahkan File
Ketika kita membatalkan
penambahan file git clean
-f
●
Menambahkan File
Membatalkan Perubahan File
- Jika kita ingin membatalkan perubahan file yang telah kita lakukan, kita bisa
menggunakan perintah :
Git restore namafile
Ketika kita membatalkan
perubahan git status
●
Menambahkan File
Ketika kita membatalkan
perubahan
●
Menambahkan File
Pengenalan Branch
- Branching Artinya kita membuat timeline baru yang berbeda dari timeline utama.
- Biasanya timeline utama, atau branch utama disebut dengan master atau main.
- Saat kita membuat timeline branch baru, semua perubahan yang kita lakukan
tidak akan merusak timeline branch utama
- Oleh karena itu fitur branching cocok digunakan misal kita akan menambahkan
fitur di repository, sehingga jika ternyata bermasalah , kita tinggal mudah pindah
ke timeline utama.
- Tidak ada batasan berapa banyak branch yang bisa kita buat di git, kita bebas
membuar branch dari branch manapun.
Diagram Branch
Diagram Branch
Membuat Branch
- Untuk membuat branch baru, caranya mudah bisa dengan perintah :
Git branch namabranch
- Saat kita buat branch baru, secara otomatis branch baru akan dimulai dari posisi
branch kita saat ini, jika misal kita membuat branch baru ketika posisi kita sedang
di branch main/master, maka branch baru tersebut akan dibuat dari branch
master.
- Untuk kita membuat branch baru dan langsung posisi kita berpindah ke branch
yang kita buat maka bisa menggunakan perintah :
git checkout -b namabranch
Membuat Branch
Membuat Branch
Mengubah nama Branch
- Jika kita melakukan kesalahan pembuatan nama branch, kita juga bisa lakukan
perubahan nama branch.
- Namun untuk melakukannya kita perlu pindah terlebih dahulu ke branch yang
ingin kita ubah namanya
- Setelah pindah, kita bisa gunakan perintah :
git branch -m namabaru
Merge
- Merge adalah proses dimana kita melakukan penggabungan dua buah branch
- Merge biasanya dilakukan setelah kita selesai membuat kode program pada
sebuah branch dan ingin menggabungkan fitur tersebut ke branch lain, misal ke
branch utama
- Saat kita melakukan merge, branch tidak akan dihapus, artinya kita masih tetap
bisa melakukan commit di branch yang ada.
- Jika ingin menghapus branch yang sudah di merge, kita perlu lakukan secara
manual
Merge Conflict
- Dalam pembuatan aplikasi, biasanya setiap programmer akan melakukan
penambahan kode program di Repository secara parallel
- Biasanya tiap programmer akan membuat branch masing-masing
- Dan tidak bisa dihindari, kadang programmer akan melakukan perubahan pada
kode file yang sama di branch berbeda.
- Dan biasanya ketika melakukan merge, akan terjadi yang namanya conflict.
- Hal ini disebabkan, satu file diubah di branch yang berbeda, sehingga ketika di
merge, kita perlu melakukan yang namanya merge conflict.
Git Remote
- Saat nanti bekerja dengan tim, atau berkolabirasi, kita tidak hanya akan
menyimpan git repository pada satu komputer saja.
- Tiap anggota tim, kemungkinan akan meng-copy git repository yang kita buat, dan
juga melakukan kontribusi ke git repositorynya.
- Git mendukung centralized server, dimana kita bisa menyimpan perubahan git
repository di komputer ke git server.
- Karena git merupakan distributed version control, walaupun kita gunakan git
server, tapi kita tidak wajib terkoneksi ketika ingin mengelola git repository.
- Hanya ketika ingin mengirim perubahan atau mengambil perubahan baru kita
butuh terkoneksi ke Git server.
Diagram Git Remote
Push
- Walaupun kita sudah menyimpan perubahan di git project di local , tapi tidak
secara otomatis akan di sync dengan remote repository
- Hal ini karena sejak awal git di desain sebagai distributed version control, artinya
kita bisa melakukan perubahan dimanapun dan kapanpun, tanpa harus terkoneksi
ke git server.
- Oleh karena itu, jika kita ingin mengirim perubahan yang terjadi di git project di
local kita, kita perlu mengirimnya secara manual ke git server.
- Untuk mengirim perubahan di local ke git server, kita bisa gunakan perintah yang
bernama git push.
Membuat Pull Request
Mengisi detail PR
Review dan merge PR
Clone
- Apa yang harus dilakukan jika misal kita ingin download project git yang ada di
server ke komputer baru?
- Hal ini dinamakan perintah : git clone urlrepository
- Dengan perintah clone, kita bisa download project di remote repository ke local
dengan otomatis di download sebagai git project.
Perintah utama
➔ git config
Mengkonfigurasi pengaturan di lokal.
➔ git remote
Mengkonfigurasi koneksi lokal dengan remote
➔ git init
Menginisiasi git di lokal
➔ git add
Mendaftarkan file yang akan disimpan pada “check
point”
➔ git commit
Melakukan check point
➔ git push
Mengirim file yang telah didaftarkan pada check point
➔ git pull
Menarik file yang dari server ke lokal
Tanya & Jawab
Terimakasih