Anda di halaman 1dari 34

GIT

Foto saya :p
Tentang Saya
• Fullname : Joko Susilo
• Nickname : jokosu10
• Member of KLAS
• Backend Developer PT Ide Solusi Asia
• email : susilo.j8@gmail.com
Facebook : https://www.facebook.com/JokoKikoSusilo
telegram : @jokosu_10
Daftar Isi
• apa itu vsc ?
• apa itu git ?
• kenapa harus menggunakan git di zaman now ?
• hal-hal dasar di git yang harus dikuasai
• kontribusi dengan git ?
• cara bikin pull request & tips berkontribusi
Apa itu Version Control System

• Version Control System (VCS) adalah sebuah infrastruktur yang dapat mendukung
pengembangan software secara kolaboratif.

• Selain mengandalkan konkurensi yang dapat mempercepat pengembangan software, VCS


juga mempunyai kemampuan untuk kembali ke versi software sebelumnya jika terjadi suatu
bencana terhadap versi software yang sedang dikembangkan saat ini.

• Selain itu, dengan menggunakan VCS setiap perubahan pada software seperti penambahan
fileatau pengubahan isi file dapat dipantau bagian mana yang diubah dan siapa yang
mengubah. Sehingga pengerjaan software akan lebih transparan dan terukur.
Git itu APA sih ?

• Git adalah salah satu dari software versioning control


system.
• Git paling populer dibanding yang lain, Dipakai untuk
ngurus kernel linux dan berbagai project open source
yang kerenn.
• Dari tiap2 versi itu, kita bisa bolak-balik dengan mudah.
• Lompat dari versi satu ke versi lain tanpa takut
manajemen berkasnya berantakan.
• Selain itu, buat kolaborasi.Penyedia layanan Git antara
lain: github, gitlab, bitbucket.
Kenapa harus menggunakan GIT ?

• Sudah zamannya untuk berkolaborasi


• Tahun 2018++ zamannya untuk berkontribusi
Masi zaman menggunakan cara manual seperti ini ?
Hal dasar yang harus dikuasai dalam git

Day 0
• setup and initialization
• workflow
• commit
• log
• checkout and branch
• manajemen konflik

Day 1
• pushing changes
• update and merge
• pull request
Setup awal memulai GIT

• perintah untuk memulai setup GIT


• git config --global user.name "Nama Saya"
• git config --global user.email "email@saya.com"

• cek konfigurasi GIT


• git config user.name
• git config user.email
workflow GIT

• Flow dari git itu garis


besarnya ada 3.
• 1. WORKING
DIRECTORY
• 2. STAGE
• 3. HEAD
• dirty -> stage -> HEAD /
commit -> dirty -> stage ->
HEAD / commit
Git Commit
• Commited adalah kondisi dimana revisi sudah disimpan di
version control.
• perintah untuk mengubah kondisi file dari staged ke
commited / HEAD adalah git commit.
Git Log
• Sekarang bagaimana caranya kita melihat catatan log dari
revisi-reivisi tersebut?
• Gunakan Git log, untuk melihat sejarah perubahan yang
telah kita lakukan
git checkout

• fungsinya untuk rollback commit dan berpindah branch


• kalo mau checkout misal pake perintah
- git checkout c9223379f0
- git checkout --b <new-branch-name>

• hash yang di pakai untuk checkout minimal 4 digit dari


depan
Branch

•branch adalah cabang dari sebuah proyek


•mengapa di perlukan branch ? karena untuk
pengembangan fitur tanpa mengedit file master
•Saat menginisiasi proyek awal, kita selalu bermula dari
master
•Anggap saja begini master itu cabang pengembangan
utama, yang resmi2 dan bakal dirilis, ada di sini semua.
•Kita bikin cabang baru supaya kita fokus di situ,
•Biarkan master bersih
Git Merge

• Merge artinya pengabungan secara otomatis.


• Sebelum merge, kita mesti tetapkan perspektif.
• Yang mana digabung kemana?
• nama_branch dibawa ke master atau sebaliknya?
• Jika nama_branch dibawa ke master , maka kita pindah
ke master kemudian merge
merge

• Kita pengen bawa fitur baru di cabang baitkedua k


'master'
• Sebelum kita gabungin, ada baiknya kita cek ricek dulu,
apa saja
• perintanya git diff
• contoh : git diff master
- git diff cabang1 cabang2
- git diff 8dda52 44ed4e832
- git diff cabang 8dda5ae
• Yang ada simbol + itu menandakan perubahannya.
• + artinya ada penambahan brais
• - artinya pengurangan.
• Maksudnya, dibanding master , cabang sekarnag ada
• penambahan yang plus plus tersebut.
• diff bisa digunakan antar cabang dan antar commit juga.
• git diff cabang1 cabang2
• git diff 8dda52 44ed4e832
• git diff cabang 8dda5ae
Git Merge

• Sebelum merge, kita mesti tetapkan perspektif.


• Yang mana digabung kemana?
• baitkedua dibawa ke master atau sebaliknya?
• Jika baitkedua dibawa ke master , maka kita pindah ke
master
• kemudian merge
Manajemen konflik

• https://www.youtube.com/watch?v=GnrkCXk4BNs
• Konflik dapat terjadi jika dua atau lebih kontributor
melakukan perubahan pada satu berkas
• terutama jika perubahan dilakukan pada baris yang sama.
• terlepas dari apakah tujuan perubahan sama atau tidak.
• Git tidak cukup pintar untuk menentukan untuk mana
yang akan dipilih
Tugas Kecil
•bikin dir baru, mkdir gitkonflik , masuk ke dalam
•git init
•edit berkas1.txt, isikan 3 baris, isinya,
halo
apakabar
surabaya
•simpan, commit, pesan commit bebas
•sunting lagi berkasnya, baris kedua ganti kata siap kemudian simpan, commit, pesan
commit bebas
•sekarang dari git log, kita punya 2 commit
•checkout ke commit pertama dan bikin cabang baru, namanya halo
•suting berkas, baris kedua, ganti dengan kata halo , simpan, commit.
•kemudian checkout ke master dan merge branch tersebut ke master.
Contoh Konflik
GIT Konflik

• Horeee KONFLIK
•Konflik terjadi apa bila ada baris yang sama edit oleh cabang yang
berbeda.
•Seperti yang kita tahu tadi,
•baris kedua itu edit oleh cabang yang berbeda.
•berbeda di masing2 cabang apabila ada perbedaan di baris yang
sama, maka konflik.
•apabila perubahannya berada di baris yang berbeda, tidak akan
konflik. git cukup pintar buat deteksi itu.
•Tapi tidak cukup pintar untuk memutuskan, manakah yang benar,
GIT Konflik
• Di situ ada karakter Tambahan yang aneh, apakah maksudnya ?
• <<<<<<<<
• ==========
• >>>>>>>>>>
• ada tiga,
• <<<
• ===
• >>>>
Contoh resolve manajemen konflik
Next Level CI/CD using gitlab
Kontribusi dengan git ?
Kontribusi ?

• kontribusi sebagai sumbangsih atau peran, atau keikutsertaan seseorang


dalam suatu kegiatan tertentu.

• Kenapa kita harus berkontribusi ?


• Sudah waktunya naik level, masak jadi pengguna terus ? :D
Tips membuat pull request
• clone it!
• Buatlah branch fitur baru: git checkout -b my-new-feature
• Commit perubahannya: git commit -m 'Add some features'
• Push ke branch di remote: git push origin my-new-feature
• Buat pull request.
• Setelah buat pull request ngapain ? lupakan, dan cari repo
lain untuk berkontribusi.
• jangan baper ya, kalo pull request kalian ditolak :D
Cara berkontribusi ?
• INGAT KONTRIBUSI ITU TIDAK HARUS MELALUI KODE
• Desain Grafis
• Pelaporan Kutu / Bug
• Penulisan dokumentasi sebuah project open source
• Menyelenggarakan Konferensi / Acara open source seperti
LibreOffice Conference Indonesia 2018.
• Ikut terlibat aktif di komunitas lokal seperti KLAS,
SurabayaDev, Surabaya.py, SHL Dll.
s.id/gabungklas
Terima Kasih

Anda mungkin juga menyukai