Skip to content

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Github-tutorial

this repository contain a simple tutorial using github and how to use it affectively

Konfigurasi awal (username dan email) :

git config --global user.name (username github)

git config --global user.name sultansyahputray

- git config --global user.email (email github)

it config --global user.email hahahihi@gmail.com

Clone repository :

git clone (ssh atau https dari repo yg mau di clone) 

git clone git@github.com:sultansyahputray/Github-tutorial.git

Pembuatan branch :

pentingnya bekerja bada suatu branch yang berbeda agar meminimalisir terjadi conflict antar pengguna pada repo bersama.

1. membuat branch baru :

git checkout -b (nama branch)

git checkout -b branch

2. cek saat ini sedang berada pada branch apa

git branch

3. switching branch

git switch (nama branch yang dituju)

git switch main

image



Menambahkan hasil kerja ke repo

1. menambahkan file yang telah diubah

git add (file apa yang selesai dikerjakan)

git add Readme.md
git add .

2. Menyimpan perubahan ke repo (checkpoint)

git commit -m "(pesan atau catatan)"

git commit -m "update Readme

3. Mengupload semua perubahan pada repo lokal ke repo github

git push origin (nama branch)

git push origin branch

Merger branch

Merger atau menggabungkan file dari suatu branch ke dalam branch lain membutuhkan perhatian dibeberapa hal, mulai dari apakah data yang mau kita merge sudah data yang terbaru, lalu format pesan commit, dll.

Membuat suatu permintaan penggabungan antara branch dengan main (pull request)

  • Buka repository yang sedang dikerjakan

image

  • Click pada menu pull request

image

  • Buat pull request baru

image

  • Setting base dari branch yang akan kita compare adalah main dan peng-comparenya adalah branch kita

image

  • Lakukan pengecekan final file yang akan di merge, bandingkan kondisi sebelum commit dan sesudah commit

image

  • Creat pull request

image

  • Pastikan bahwa pesan commit sudah final dan sesuai dengan format

image

  • Jika sudah sesuai, lakukan rebase and merge

image



Kondisi apabila terjadi conflict pada saat push ke repo atau merger

Terdapat beberap kasus dimana kita mendapati adanya conflict ketika ingin push ke github, berikut beberapa alternatif penyelesaiannya :
image

1. Melakukan clone ulang repo

Disini kita menggunakan cara tradisional dimana kita mem-backup terlebih dahulu file yang telah kita kerjakan, lalu kita copy perubahan file kita ke repo yang akan kita clone ulang.

  • Mem-backup file yang telah kita kerjakan ke folder lain
  • Menghapus repo lama pada lokal kita
  • Menghapus branch kita pada repo tersebut
  • Melakukan clone ulang pada repo yang dimaksud
git clone (alamat ssh file yang dimaksud)
  • Meng-input perubahan yang sebelumnya telah kita buat ke file clone yang baru
  • Buat branch baru, lalu push ke branch tersebut. Cek dengan membuat suatu pull request, lalu perhatikan hal yang berubah antara file pada main dengan branch kita
  • Apabila dirasa tidak ada conflict, lanjutkan dengan rebase and merge

2. Menggunakan fasilitas git pull

kondisi :
image

  • Melakukan pull pada branch yang kita maksudkan untuk melakukan push
git pull origin (nama branch)

git pull origin sultan
image

  • Karena terdapat conflict, selesaikan terlebih dahulu file yang conflict

image

  • Setelah diperbaiki, lalu complete merge
  • Lakukan commit ulang untuk perubahan final
  • Coba cek push kembali, apakah masih conflict atau tidak

image

  • Kalau sudah tidak terjadi conflict, lanjutkan ke langkah merger



Promp Git Hub yang sewaktu-waktu dibutuhkan

1. Git cherry pick

cherry pick sendiri merupakan suatu fasilitas dimana kita dapat menerapkan satu atau lebih commit pada suatu branch ke branch yang lain. Hal ini seperti kita ingin meng-copy suatu commit yang pernah kita lakukan ke branch yang saat ini sedang kita kerjakan. Berikut contoh kasus saat kita menggunakan cherry pick :

  • Memilih branch yang akan kita jadikan workspace kita
git checkout -b uji-coba
  • Semisal kita ingin mengambil commit di branch main, maka kita cek log commit dari branch main tersebut
git log main
  • Pilih commit mana yang ingin kita ambil datanya, copy id commit yang dipilih
git cherry-pick ce78c49b2f78e47e46f7954a804911fbe1148bed
  • Jika terjadi conflict, maka selesaikan terlebih dahulu file conflict nya. setelah itu lanjutkan proses cherry-pick nya
git cherry-pick --continue
  • Seteah selesai, beri commit baru untuk file yang telah di modifikasi, lalu push ke branch yang kita inginkan

2. Git Stash

Fitur ini berguna untuk menyimpan semua progress yang telah kita kerjakan selama ini sejak commit terakhir tanpa membuat sebuah commit untuk state itu sendiri. Jadi mirip seperti checkpoint yang mana kita tidak perlu membuat save-save an ulang setiap kali terdapat sebuah pekerjaan yang baru setengah jalan dan belum mau kita commit terlebih dahulu. Berikut langkah-langkah dalam menggunakan git stash :

  • Membuat suatu checkpoint atau stash
git stash
  • Mengecek daftar checkpoint/stash yang telah kita buat
git stash list

biasanya setealah itu akan muncul checkpointnya dalam bentuk stash@{i} dimana {i} sesuai dengan checkpoint keberapa yang telah kita lakukan.

  • Meng-apply checkpoint yang telah kita buat ke pekerjaan kita kembali
git stash apply
git stash pop

perbedaan dari apply dan pop sendiri yaitu jika menggunakan apply, maka stash yang baru saja di implementasikan tidak akan dihapus dari daftar checkpoint. sedangkan kalau menggunakan pop, maka stash tersebut akan otomatis terhapuskan dari daftar checkpoint.



Format penulisan pesan commit yang baik dan benar

Berikut contoh penulisan pesan commit yang baik dan benar :

<type>[optional scope] : <description>
[optional body]
[optional footer]
refactor : match the style coding with google style guide c++

change the style of writing a code with google style guide, so another participant will be easier to understand the code. 

nah untuk membuat pesan commit yang panjang seperti ini, gunakan perintah git commit saja, jadi tidak perlu menyertakan -m "pesan commit".

Berikut beberapa tipe commit yang dapat dijadikan referensi untuk penulisan pesan commit :

  • refactor : mengubah codingan tanpa memperbaiki suatu bug ataupun tidak terdapat perubahan secara fungsi dari code tersebut.
  • update : membuat suatu perubahan atau menambahkan suatu fitur dari apa yang telah ada.
  • fix : memperbaiki suatu bug pada code tersebut
  • revert : kembali pada commit sebelumnya karena dirasa bahwa kinerja code lebih efektif sebelum commit yang sekarang



Mengenal perbedaan merge, rebase, dan squash commit

Dalam penggabungan suatu branch dengan branch lainnya, kita memiliki 3 opsi penggabungan yaitu merge, rebase, dan squash commit. Berikut akan kita bahas pengertian serta perbedaan dari ketiga metode tersebut :


1. Merge

image
Git merge merupakan penggabungan antara 1 cabang dengan cabang yang lain yang mana hal ini membuat suatu commit gabungan antara 2 cabang tersebut. Jadi history dari commit akan kurang rapi dan lebih sulit untuk di debug apabila terjadi kesalahan.


2. Rebase

image
Git Rebase digunakan untuk menyusun ulang history commit. Jadi commit pada cabang yang akan kita merge akan di terapkan pada ujung cabang branch tujuan merge yang menghasilkan history yang lebih linear.


3. Squash commit

image
Squash commit merupakan penggabungan beberapa commit menjadi 1 commit tunggal. Ini membantu dalam menjadi kerapihan history commit. Squash commit biasanya di padukan dengan metode rebase agar history pada branch tujuan tidak terlalu banyak, namun tetap tertata dengan rapi.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors