Slide 1

Slide 1 text

Memaksimalkan Git untuk Kerja Tim Miral Achmed @achmiral

Slide 2

Slide 2 text

Perkenalan

Slide 3

Slide 3 text

Miral Achmed Jr. Ruby Web Developer at Supersewa.com @achmiral https://achmiral.id

Slide 4

Slide 4 text

https://supersewa.com/

Slide 5

Slide 5 text

Materi

Slide 6

Slide 6 text

1. Berkenalan dengan Git. 2. Menggunakan Git untuk kerja tim. Materi

Slide 7

Slide 7 text

1. Berkenalan dengan Git

Slide 8

Slide 8 text

Git? Git adalah distributed version control system (VCS) yang dirancang untuk mencatat setiap perubahan - perubahan dalam kode sumber perangkat lunak selama pengembangan perangkat lunak.

Slide 9

Slide 9 text

VCS?

Slide 10

Slide 10 text

Local VCS https://git-scm.com/book/en/v2/images/local.png

Slide 11

Slide 11 text

Centralized VCS https://git-scm.com/book/en/v2/images/centralized.png

Slide 12

Slide 12 text

Distributed VCS https://git-scm.com/book/en/v2/images/distributed.png

Slide 13

Slide 13 text

Konsep dasar Git 1. Repository 2. Commit 3. History 4. Branching 5. Merging

Slide 14

Slide 14 text

Repository Repositori Git dapat diartikan database projek yang mencatat semua perubahan yang terjadi pada file dan direktori dalam proyek tersebut ● Local Repository ● Remote Repository

Slide 15

Slide 15 text

Commit Penggambaran satu set perubahan tertentu pada proyek dan menciptakan titik dalam history proyek yang dapat dirujuk kembali.

Slide 16

Slide 16 text

History Adalah catatan atau riwayat lengkap dari perubahan-perubahan yang terjadi dalam suatu repository. History Git mencakup informasi tentang setiap commit yang telah dilakukan, termasuk informasi tentang perubahan apa yang dilakukan, siapa yang melakukannya, kapan perubahan itu terjadi, dan pesan yang terkait dengan setiap commit.

Slide 17

Slide 17 text

History https://www.bitsnbites.eu/a-tidy-linear-git-history/

Slide 18

Slide 18 text

Branching Proses yang memungkinkan developer untuk bekerja pada perubahan atau fitur tertentu tanpa mempengaruhi branch utama atau branch lainnya.

Slide 19

Slide 19 text

Merging Proses penggabungan perubahan yang terjadi di dua branch berbeda dalam Git

Slide 20

Slide 20 text

Status data pada Git 1. Untracked, file tidak tercatat di repository git. 2. Unmodified, file sudah tercatat di repository tetapi tidak mengalami perubahan. 3. Modified, file sudah tercatat di repository git dan mengalami perubahan. 4. Staged, file sudah berada di staging area dan sudah siap di commit. 5. Committed, file sudah dicatat di repository git. https://git-scm.com/book/en/v2/images/areas.png

Slide 21

Slide 21 text

2. Menggunakan Git untuk kerja tim

Slide 22

Slide 22 text

Git Hosting Git hosting adalah layanan atau platform yang menyediakan infrastruktur untuk menyimpan, mengelola, dan berkolaborasi pada repositori Git. ● GitHub ● GitLab

Slide 23

Slide 23 text

Branching Model 1. Git Flow 2. GitHub Flow 3. GitLab Flow

Slide 24

Slide 24 text

Git Flow ● Master/Main Branch: Mewakili versi stabil yang siap dirilis. ● Develop Branch: Tempat pengembangan aktif berlangsung. ● Feature Branches: Cabang untuk menambahkan fitur baru. ● Release Branches: Cabang untuk persiapan rilis. ● Hotfix Branches: Cabang untuk memperbaiki bug di produksi. https://nvie.com/posts/a-successful-git-branching-model/

Slide 25

Slide 25 text

GitHub Flow ● Main Branch: Umumnya menggunakan branch bernama "main" sebagai branch utama. ● Feature Branches: Pengembang membuat cabang untuk setiap fitur atau perbaikan bug. ● Pull Requests: Perubahan diusulkan melalui pull requests untuk direview dan dibahas sebelum diintegrasikan ke main.

Slide 26

Slide 26 text

Gitlab Flow ● Master/Main Branch: Mewakili versi yang siap untuk produksi. ● Feature Branches: Cabang untuk menambahkan fitur baru. ● Production Branch: Digunakan untuk melakukan deployment ke lingkungan produksi. ● Hotfix Branches: Cabang untuk memperbaiki bug di produksi.

Slide 27

Slide 27 text

Pull Request / Merge Request Permintaan oleh seorang pengembang kepada pemilik repositori untuk menggabungkan perubahan yang telah mereka buat di branch terpisah ke branch utama repositori.

Slide 28

Slide 28 text

Pull Request / Merge Request

Slide 29

Slide 29 text

Masalah ketika berkolaborasi menggunakan Git 1. Konflik Merge 2. Cabang yang Ketinggalan (Outdated Branch) 3. Perubahan Tidak Terlacak (Untracked Changes)

Slide 30

Slide 30 text

Konflik Merge Saat dua atau lebih anggota tim mengubah bagian yang sama dari kode atau file, hal ini dapat menyebabkan konflik saat mencoba untuk menggabungkan perubahan tersebut. Git akan menandai area yang konflik, dan pengguna perlu menyelesaikan konflik manual sebelum melanjutkan. ● Sebelum menggabungkan branch, pastikan untuk melakukan pull dari branch target terlebih dahulu. ● Selalu komunikasikan perubahan yang akan Anda lakukan dengan tim, terutama jika ada bagian yang sering diubah.

Slide 31

Slide 31 text

Cabang yang Ketinggalan (Outdated Branch) Jika seseorang bekerja di cabang yang tidak diperbarui dengan perubahan terbaru dari cabang utama (master atau development), hal ini dapat menghasilkan kesulitan saat mencoba untuk menggabungkan perubahan mereka atau membuat pull request. ● Pastikan untuk secara berkala melakukan pull dari cabang utama ke cabang lokal Anda. ● Gunakan rebase jika memungkinkan untuk menjaga sejarah commit tetap bersih.

Slide 32

Slide 32 text

Perubahan Tidak Terlacak (Untracked Changes) Seringkali, pengembang lupa untuk menambahkan atau meng-commit file yang baru dibuat atau diubah sebelum melakukan push. Ini dapat menyebabkan perubahan tersebut tidak terlacak dan tidak akan masuk ke repositori. ● Pastikan untuk menambahkan dan meng-commit semua perubahan sebelum melakukan push. ● Gunakan perintah git status untuk melihat perubahan yang belum terlacak.

Slide 33

Slide 33 text

Sumber belajar ● Getting Git right - https://www.atlassian.com/git ● Git Book - https://git-scm.com/book/id/v ● Github: Getting started with Git - https://docs.github.com/en/get-started/getting-started-with-git ● Gitlab Tutorials: Learn Git - https://docs.gitlab.com/ee/tutorials/learn_git.html

Slide 34

Slide 34 text

Tanya Jawab

Slide 35

Slide 35 text

s.id/kpbgit

Slide 36

Slide 36 text

Terima kasih