Belajar Git Version Control System


Instalasi Git

Konfigurasi Git

Membuat Repository atau Project

Menambahkan File baru

Menambahkan beberapa file satu per satu

Perubahan isi file

Cek perubahan

Perubahan banyak file

Menghapus File

Menghapus File yang dibuat sebelum Staging Index

Mengembalikan perubahan isi File

Mengembalikan file yang dihapus

Restore File yang terhapus di Staging Index

Git Log

Membandingkan Perubahan

Melihat perubahaan dengan difftool vscode

Rename File

Reset Commit

git reset <mode> <hash/commitid>

Untuk membatalkan commit atau menggeser HEAD.

<Mode>

–soft: perubahan hanya sampai staged index (sebelum commit)

–mixed: perubahan hanya sampai working directory

–hard: perubahan dilakukan pada semua state (repository, staged index, working directory)

Grafik mode pada reset commit:

Staged berarti sebelum dicommit. Unstaged berarti sebelum di add. Working Directory berarti perubahan pada file juga hilang.

Revert Commit

git revert <hash/commitid>

Untuk membuat commit yang merupakan kebalikan commit sebelumnya

Commit Amend

git commit --amend -m "message"

merge commit, perubahan tidak dibuat commit baru

Command Lain

git checkout <nama_branch>: berpindah ke snapshot terakhir

#contoh: 
git checkout master

Untuk berpindah ke snapshot terakhir.

git checkout <hash> -- nama_file: berpindah ke snapshot yang diinginkan

#contoh:
git checkout 83b5157 -- coba3.txt

Untuk berpindah ke snapshot yang diinginkan.

git revert <hash>: untuk commit kebalikan dari target hash tanpa menghilangkan versi head

#contoh:
git revert 4460191

Untuk membuat commit baru dengan hasil kebalikan dari target hash tanpa menghilangkan commit yang menjadi head.

Gitignore

.gitignore dberguna untuk mengabaikan file atau folder agar tidak ditampilkan di repository.

Ketika membuat file atau folder baru dan tidak ingin ditampilkan di repository, maka masukkan ke .gitignore

contoh:

*.txt

Untuk tidak menampilkan semua file dengan ekstensi .txt

log/

Untuk tidak menampilkan folder dengan nama log.

Branching

membuat percabangan timeline dari master

nantinya bisa di merge ke branch utama

menambahkan fitur tanpa takut mengganggu timeline master

master ini sudah berjalan di production

maka branch bisa digunakan untuk membuat timeline penambahan fitur atau perbaikan bug tanpa mengganggu produksi

misal:

— fitur 1.1 — fitur 1.2

| |

— develop ———————

|

master ————————————————————- master (production)

|

— hotfix aaa (perbaikan bug)

contoh nanti fitur 1.1 sudah jadi, bisa di merge ke branch develop atau ke master langsung.

jika hotfix atau perbaikan bug sudah selesai, bisa langsung di merge ke master (production – service yang sudah berjalan)

git branch –show-current: menampilkan branch yang digunakan

git branch: menampilkan list branch

git branch namabranchbaru: membuat branch baru

git switch namabranch: berpindah branch

git branch -m namabranchbaru: ganti nama branch, tapi masuk ke branch dulu

git branch -d namabranch: untuk menghapus branch

git merge namabranch: untuk menarik perubahan branch

git merge –abort: batal perubahan merge

kalau konflik edit file manual dan commit manual

* 888921c (HEAD -> feature/c) feature c – coba4.txt

* 0a3b727 feature c – coba3.txt

* 4f7c047 feature c – coba2.txt

* 1679f35 feature c – coba1.txt

git cherry-pick <commit-id/hash>: untuk merge commit tertentu

Git remote

1. Buat Repository baru

2. Buat ssh key di lokal

3. Copy public key ke github settings ssh

4. buat project baru (folder baru)

5. git init

6. git branch

7. git remote add nama ssh-url (nama biasanya origin, ssh-url buka di repo)

8. git remote: melihat daftar remote repository

9. git remote get-url namaremote: untuk melihat url remote repo

10. git remote rm namaremote: menghapus remote repo

11. git push namaremote localbranch: untuk mengirim perubahan ke remote repo

12. git push namaremote localbranch:namabranch :untuk melakukan push dengan perubahan nama branch

13. git push origin –all: untuk push semua branch

14. git push –delete namaremote namabranch: untuk menghapus branch remote repo

15. git clone urlremoterepo: untuk duplikasi dan berkontribusi ke remote repo

Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti, klik disini untuk info lengkapnya.

Penulis : Bazigan Tsamara Sukamto