Pengenalan Git
Transcript of Pengenalan Git
Pengenalan Git
Creative Commons Attribution-ShareAlike 3.0 Unported
Fajran Iman Rusadi
https://github.com/fajran/slide-pengenalan-git
Version Control System
Pengelola perubahan
Contoh: Subversion, Bazaar, Mercurial, Git
Resep dari http://id.wikibooks.org/wiki/Resep:Karedok
Karedok* Ketimun, direbus sebentar* Tauge* Kol, iris halus* Kacang panjang, rebus sebentar* Daun kemangi* Terong
Karedok* Ketimun* Tauge* Kol* Kacang panjang* Daun kemangi* Terong
Alur Kerja
1. Buat repositori
2. Salin revisi
3. Ubah, tambah, hapus
4. Kirim perubahan ke repositori
1
2 3
4
Terpusat vs Terdistribusi
Direktori Kerja
Repositori
Repositori Utama
Repositori Pribadi
Direktori Kerja
git init
$ mkdir resep$ cd resep$ git initInitialized empty Git repository in /home/iang/resep/.git/
$ ls -a. .. .git
Membuat repositori baru
git add
$ vi karedok.txt$ git add karedok.txt
Mendaftarkan berkas untuk disimpan
Konsep penting untuk diketahui: staging areaAkan dibahas nanti!
git commit
$ git commit -m "resep karedok"[master (root-commit) 066ee9e] resep karedok 1 files changed, 8 insertions(+), 0 deletions(-) create mode 100644 karedok.txt
Menyimpan perubahan ke repositori
Hanya akan menyimpan perubahan yang sudah dimasukkan ke dalam staging area
Staging Area
Repositori Pribadi Staging Area Direktori Kerja
Berisi perubahan yang akan disimpan pada saat commit
Berguna untuk commit secara selektif
Git Philosophy
Commit early, commit often One commit represents one idea or one
change. Your working directory, index, and local
repo are your scratch pads.
Advanced Git Tutorial by Sarah Sharphttp://thesharps.us/~sarah/advanced-git.pdf
git add
$ vi karedok.txt$ git commit -m "tambah petunjuk"# On branch master# Changed but not updated:# (use "git add <file>..." to update what will be committed)# (use "git checkout -- <file>..." to discard changes in working directory)## modified: karedok.txt#no changes added to commit (use "git add" and/or "git commit -a")
$ git add karedok.txt$ git commit -m "tambah petunjuk"[master 84801e1] tambah petunjuk 1 files changed, 3 insertions(+), 3 deletions(-)
Menambahkan berkas baru Menyimpan perubahan ke staging area
Ilustrasi Staging Area
$ vi karedok.txt$ git status# On branch master# Changed but not updated:## modified: karedok.txt#
$ git add karedok.txt$ git status# On branch master# Changes to be committed:## modified: karedok.txt#
Perubahan dibuat
Perubahan terdeteksi namun belum masuk ke staging area
Memasukkan perubahan ke staging area
Perubahan tercatat di staging area
kondisi sebelum git add
Kolaborasi
1. Menyalin repositori
2. Membuat perubahan lokal
3. Mengirim perubahan ke repositori lain
git clone
$ git clone git://git.debian.org/debian-id/webwml-id.gitInitialized empty Git repository in /home/iang/webwml-id/.git/remote: Counting objects: 82, done.remote: Compressing objects: 100% (74/74), done.remote: Total 82 (delta 17), reused 0 (delta 0)Receiving objects: 100% (82/82), 49.61 KiB, done.Resolving deltas: 100% (17/17), done.
$ lswebwml-id
Menyalin repositori
git log
$ git logcommit 9d014350974f00670b1c694fb71d72037e677f9aAuthor: Izharul Haq <[email protected]>Date: Fri Dec 3 06:55:58 2010 +0700
Request For Review
commit 3fd26492e4feeb1ee835e8261b66aa5975d99074Author: Izharul Haq <[email protected]>Date: Thu Dec 2 19:07:36 2010 +0700
Re-adding file license.wml after dead revision 1.5
commit c3dbd03a7947cc0feefe658dbe57f757358eeba1Author: Izharul Haq <[email protected]>Date: Thu Dec 2 18:47:46 2010 +0700
Initial translations
...
Melihat riwayat perubahan
git remote
$ git remoteorigin
$ git remote show origin* remote origin Fetch URL: git://git.debian.org/debian-id/webwml-id.git Push URL: git://git.debian.org/debian-id/webwml-id.git HEAD branch: master Remote branch: master tracked Local branch configured for 'git pull': master merges with remote master Local ref configured for 'git push': master pushes to master (up to date)
Repositori lain yang dipakai
git push
$ git push origin masterCounting objects: 4, done.Delta compression using up to 4 threads.Compressing objects: 100% (2/2), done.Writing objects: 100% (3/3), 288 bytes, done.Total 3 (delta 0), reused 0 (delta 0)Unpacking objects: 100% (3/3), done.To /home/iang/webwml-id.git 9d01435..b6cbae8 master -> master
Mengirim perubahan ke repositori lain