/git

Primary LanguageJava

GIT

git init Initilize git repository

git status Untuk lihat status dari file yang terdapat di repository (file baru, file yang blm di commit, buang perubahan)

git add {filename} / . Untuk menambahkan file baru ke dalam repository (status new -> uncommitted)

git commit {filename} -m "{message}" Untuk menambah perubahan file baru ke dalam repository (status uncommited -> committed)

git commit {filename} -am "{message}" 2 Oprasi yg berlangsung add file dan masuk ke staging dan langsung commit

git commit --amend -m "{message}" Untuk mengubah commit message yang salah tulis, hati hati ini mengubah hashcode

git commit --amend Bila terdapat file yang ketinggalan tp mau jadi bagian commit terakhir, hati hati ini mengubah hashcode

git branch Menampilkan seluruh branch yang ada pada repository dan branch yang lagi kita gunakan, otomatis untuk pertama kali branch yang kita gunakan adalah 'master'

Apabila file yang sudah ter-commit berubah maka kita harus jalankan git add dan git commit lagi

git log Melihat perubahan atau tahapan tahapan commit, dimana masing masing commit memiliki id perubahan (HEAD -> master) perubahan terakhir kita (pointer)

git clean -df Akan menghilangkan untrack file, layaknya discard change tp pada untrack file

git checkout {commitID} Mengarahakan file ke pada perubahan terakhir dari commitID

git reset --hard {commitID} Mengarahakan file ke pada perubahan terakhir dari commitID, WARNING !! dan menghapus commit di atasnya

git checkout -- {filename} Akan meng-revert perubahan yang terjadi pada file tersebut (undo)

git checkout -b {branchname} Akan membuat branch baru dengan nama sesuai branchname yang di isi, pada saat pembuatan branch baru, history dari original branch akan terbawa

git checkout {branchname} Pointer git akan pindah ke branch yang di input (lihat git branch)

git merge {branchname} Melakukan merging perubahan coding, kondisinya kita harus berada di sisi yang menarik contoh : ada 2 branch master dan newfeature. di branch newfeature ada perubahan dan sudah di commit, maka kita pindah ke sini master kalo lakukan git merge newfeature untuk merging ke master. Note, dengan cara ini semua commit yang ada di newfeature akan ke bawa ke master SEMUANYA.

git merge --squash {branchname} Sama halnya dengan di atas, perbedaanya adalah semua perubahan dari branch commitnya tidak di bawah ke master, jadi perubahan tersebut di jadikan 1 paket. Kasarnya, saya tidak mau tau perubahan kamu apa apa saja pokoknya kirim semua jadi 1 perubahan total. Hal ini dapat di lihat dari git log yang tidak memunculkan perubhan dari newfeature

git branch -D {branchname} Akan menghapus branch yang di input di branchname. Note penghapusan branch tidak bisa dilakukan apabila kita sedang berada di branch tersebut

git remote add origin {remote repository}.git Membuat koneksi dari repository local ke repository remote

git push -u origin master Push / sychron ke remote url dgn branch remote master

git push origin --delete {branch remote repository} Hapus Cabang di remote Repository

git revert {commmit} melakukan revert/membatalkan versi commit tp ingat ini hanya di local u harus push kembali

git revert HEAD5..HEAD1 Sebenernya bis melakukan rever byk commit, tp ini BAHAYA paling bagus melakukan revert 1 by 1

git tag {tagname} Akan membuat tag pada current branch (git tag v1.0)

git tag -a {tagname} -m {message} Membuat annotated tag, dimana kita bisa memberikan pesan pada tag tersebut (git tag -a v1.1 -m "tag for release ver 1.1")

git tag, git show v1.0, git tag -l "v1.*" Commend di atas berguna untuk menampilkan list of tag

git push origin v1.0, git push --tags Berfungsi untuk push tag v1.0 ke remote

git tag -d v1.0, git tag --delete v1.0, git push origin -d v1.0 Menghapus tag

git checkout -b {branchname} {tagname} Memindahkan specific tag ke specific branch

git tag {tagname} {commitname} Membuat tag on specific commit address

git rebase {branchname} atau master Warning jgn pernah rebase dgn remote repository, hanya untuk local repository saja ya.
git rebase itu misal dari m1, m2 terus kita bikin cabang feature jadi f1 (yg berasal dari m2) lalu kita ubah code jadi f2.
Intinya kita mau perubahan kita compatable dgn perubahan terakhir dari m2.

misal master telah berubah menjadi m3.
in branch fiture>git rebase master = akan mengubah root yg sebelumnya m2 menjadi m3.
sama halnya dengan master bisa juga untuk menarik perubahan.
in branch master>git rebase fiture.

Kondisi Conflict Bila terjadi konflik pada saat push, maka kita harus fixing secara manual, yang kemudian lakukan seperti biasa yaitu git add dan git commit

Kasus Mencoba menghubungi antara local dan remote, Mencoba untuk pull tetapi muncul 'unrelated histories' Paksa dgn git pull --allow-unrelated-histories origin master