Skip to content

Instantly share code, notes, and snippets.

@adityasatrio
Created August 28, 2014 03:59
Show Gist options
  • Save adityasatrio/837210232d3f46c1720b to your computer and use it in GitHub Desktop.
Save adityasatrio/837210232d3f46c1720b to your computer and use it in GitHub Desktop.
GIT quick description
http://www.kaskus.co.id/post/53f4d8f9d675d4aa188b45ba#post53f4d8f9d675d4aa188b45ba
git itu source code manager
bisa juga disebut revision manager
persis seperti svn dan cvs
hanya saja git itu terdistribusi
git dibuat sama linus torvalds, dkk
karena beliau gak puas sama svn dan cvs tsb
(sebenernya beliau sebelumnya pakai perforce, tapi lebih milih utk membuatnya sendiri yang sifatnya open source)
gini... simpelnya
setiap kali ente dapat proyekan yang berkaitan dengan text dan code
pasti ada revisi kan?
misal ada penambahan method, ada bagian yang diubah di sana sini,
ada file yang dihapus, ada file file baru, dsb misal class baru, atau method baru, atau ente me-refactor code ente.
satu commit git => menyimpan snapshot tentang source code ente, messagenya apa, ada waktu commit, nama ente (beserta email), dsb...
satu repository git => punya banyak commit
setiap ente selesai melakukan revisi, misal ada penambahan method atau apalah, pokoknya yang mengubah isi dari file text/code di dalam repository tsb, ente melakukan commit, jadi perubahannya bisa tersimpan, dan bisa dipush ke remote repository (di komputer/server lain)
utk melakukan commit thdp suatu file, ente harus memasukkannya ke fase staging dulu via git add.
alur dasarnya
git init (bikin repository kosong) / sekali aja
kemudian, dari situ
tambahin file yang hendak di commit (git add)
kemudian commit
ada perubahan di code ente?
tambahin perubahan tsb (git add)
commit lagi
dst
setiap commit itu punya parent commit
ada history-nya jadi ente bisa track kerjaan ente dari situ
file file yang ente gak mau masukkin ke repository, ente masukkin ke gitignore, misal file2 binary seperti .class dan .jar, atau file2 temporary, file2 setting IDE, dsb.. termasuk juga file2 untuk distribusi hasil dari kompilasi, gak perlu dicommit,, misal css hasil dari compile sass, js dari compile coffee, yang dicommit cukup file file sass dan coffee-nya
nah git itu terdistribusi
ente bisa mem-fork repository satu sama lain...
misal kerjaan ane ditaro di repo, ane kasih ente izin, ente fork, dari fork tsb ente bisa lanjutin sendiri, commit sendiri, bikin branch sendiri, dsb.
intinya ente punya repository local ente sendiri
biasanya di sebuah proyek, ada 1 prime repository yang official... di situlah produk dikembangkan
kalau ente mau contribute, ente pull request ke prime repository tsb.
ada yang namanya branching
biasanya penambahan fitur atau hotfix atau versi baru
branching ini maksudnya ketika membuat branch baru, ente membuat semacam cabang dari repository ente, snapshotnya persis seperti yang ente rujuk sebagai branch tsb
misal ente punya branch master sbg default
ente mau bikin fitur buat voting di app ente,
ente bikin branch utk develop feature voting (berdasarkan branch master)
branch master diduplikat jadi branch baru dengan nama branch tsb (voting)
ente switch ke branch voting
ente bikin code-nya di branch voting
ketika selesai, commit
dan ente merge ke master
nah ente push ke remote repository ente, ente minta pull request ke prime repository (kalau orang lain yang handle)
selesai direview, kalau disetujui, mereka akan merge fitur voting tsb ke repository prime itu
bisa jadi branch branch yang ente punya di mesin lokal ente
berbeda dengan branch branch milik orang lain
karena mungkin bagi tugas, dsb
misal:
ane ngerjain fitur A
dia ngerjain fitur B
dia ngerjain fitur C
dsb
http://i.stack.imgur.com/yof9f.png
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment