Git
Upcoming SlideShare
Loading in...5
×
 

Git

on

  • 8,593 views

Git Version Control

Git Version Control

Statistics

Views

Total Views
8,593
Views on SlideShare
2,330
Embed Views
6,263

Actions

Likes
0
Downloads
90
Comments
0

19 Embeds 6,263

http://www.python.or.id 5065
http://pinstream.me 308
http://www.fanani.net 303
http://localhost 265
http://fanani.net 154
http://testfananinet.herokuapp.com 61
http://semarketir.com 50
http://www.archive.fanani.net 20
http://semarketirblog.wordpress.com 17
http://test8.inceptum.eu 6
http://www.linkedin.com 3
http://webcache.googleusercontent.com 2
http://www.mindtalk.com 2
http://tuxhero.com 2
http://202.72.202.187 1
http://wordpress.com 1
http://202.72.202.180 1
http://azware.wordpress.com 1
http://translate.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Git Git Presentation Transcript

  • Git Fanani M. Ihsan [email_address]
  • Version Control
    • Mencatat semua perubahan source code
    • Tool coding para programmer
    • Documentasi source code
  • Type Version Control
    • Local VCS
    • Centralized VCS (Subversion)
    • Distributed VCS (Git)
  • Local VCS
  • Centralized VCS
  • Distributed VCS
  • Project Using Git
    • Git
    • Linux Kernel
    • Perl
    • Eclipse
    • Gnome
    • KDE
    • Qt
    • Ruby on Rails
    • Android
    • PostgreSQL
    • Debian
    • X.org
  • Git Workflow
  • Installasi Git
    • Debian based
    • # sudo apt-get install git-core
    • Redhat Based
    • # yum install git-core
    • Windows
    • Bisa gunakan mysgit (CLI) , tortoise git (GUI)
    • http://code.google.com/p/msysgit
    • Mac
    • Tersedia installer for mac http://code.google.com/p/git-osx-installer
  • First Configuration
    • Your Identity
    • $ git config --global user.name "Fanani M. Ihsan"
    • $ git config --global user.email contact@fanani.net
    • Additional
    • $ git config --global color.ui true
    • $ git config --global core.editor geany
    • Cek Configuration
    • $ git config --list
    • user.name=Fanani M. Ihsan
    • user.email=contact@fanani.net
    • color.ui=true
    • core.editor=geany
  • Git Basic
  • Create First Repository
    • Buat directory
    • Git init
    • Add
    • First commit
    • Enjoy !
  • Git Basic Operation Source from : http://endy.artivisi.com
  • Add & Commit
    • Add : digunakan untuk menambahkan daftar file ke staging area
    • Commit : digunakan untuk memindah file yang ada di stagging area ke dalam repository
  • Tracking Status
    • Git status
    • untuk melihat status perubahan bisa gunakan git status file yang ada di working directory , dan stagging area
    • $ git status
    • Git Diff
    • Digunakan untuk membandingkan perubahan sebelum perubahan
    • $ git diff
    • Meld
    • Sama seperti git diff fungsinya , tapi dengan tampilan gui , sehingga lebih mudah di baca
  • Ignore Files
    • Terkadang ada file yang tidak seharusnya di commit , sepert file *.exe , *.class , *.pyc , atau file logging.
    • Untuk itu buat file .gitignore untuk memberikan daftar file yang tidak akan terdeteksi perubahnnya oleh git
  • Remove And Delete
    • Move file
    • $ git mv file_from file_to
    • Remove file
    • $ git rm file_to_remove
  • Commit History
    • Git Logging
    • http://progit.org/book/ch2-3.html
    • Gitg
    • Tool yang sangat membantu melihat log perubahan dengan basis gui
    • $ sudo apt-get install gitg
  • Manipulasi Commit
    • Git commit –ammend
    • Digunakan untuk menambahkan perubahan pada commit terahir
  • Undo File
    • Git reset
    • $ git reset
    • Git reset - -hard HEAD
    • $ git reset - -hard HEAD
    • Git resset - -hard <log number>
    • $ git reset - -hard 7fc6387
  • Git Remote and Github
  • Working With Remote
    • Local Repository
    • Local PC masing-masing
    • Remote Repository
    • Server git , such as : Github
  • Github
      Langkah membuat repository di github
    • Register
    • Create local repository
    • Create Github repository
    • Add remote repo pada local repository
    • Push Master Branch
  • Autentifikasi
    • Https
    • Menggunakan username dan password
    • Ssh-keygen
    • Menggunakan ssh public key
  • Create SSH Keygen
    • Generetate ssh-keygen
    • $ ssh-keygen
    • Result
    • $ ls ~/.ssh
    • id_rsa id_rsa.pub
    • Public Key
    • Copy to github
    • Private Key
    • Pasangan dari public key , harus di jaga kerahasiaannya karena berurusan dengan security
  • Setup Project Github
    • Buat local repository seperti pada slide sebelumnya
    • Tambahkan remote repository di github
    • $ git remote add origin git@github.com: username / <project_name> .git
    • Upload master branch
    • $ git push -u origin master
    • Cek daftar remote repository
    • $ git remote -v
    • Enjoy !!!
  • Clone, Pull, dan Push
    • Clone
    • Digunakan untuk menggandakan repository remote ke local.
    • Pull
    • Digunakan untuk mengupdate perubahan version dari remote ke local.
    • Push
    • Digunakan untuk mengupload perubaahan yang terjadi dari local ke remote
  • Multiple Remote
    • Add remote
    • $ git remote add other git@github.com:fanani/project-git-2.git
    • Push Remote baru
    • $ git push -u other master
    • Fetching (sinkonisasi antara origin dan other)
    • $ git fetch other
    • note : git fetch hanya merubah history yang ada di remote , bukan di local . Sehingga biasanya setelah kita melakukan feth , harus dilakukan pull agar local repo sama dengan remote remo
    • Inspeksi hubungan remote dan local
    • $ git remote show origin
  • Rename & Remove Remote
    • Rename
    • $ git remote rename <old_remote_name> <new_remote_name>
    • Remove
    • $ git remote rm <remote_name>
    • Cek
    • $ git remote -v
  • Tagging
    • Tag biasanya digunakan untuk menandai sebuah versi aplikasi .
    • Create Tag
    • $ git tag -a v1.0 -m &quot;ini versi 1.0&quot;
    • List Tag
    • $ git tag
    • Show Detail
    • $ git show v1.0
  • Git Advaced
  • Branching
    • Fitur hampir ada di setiap version control
    • Untuk memastikan code tetap bersih pada branch utama
    • Default branch adalah master
  • Branch Administration
    • Create branch
    • $ git branch fitur-baru
    • Show branch list
    • $ git branch
    • fitur-baru
    • * master
    • Pindah branch
    • $ git checkout fitur-baru
    • Switched to branch 'fitur-baru'
    • Delete branch
    • $ git branch -d fitur-baru
    • Deleted branch fitur-baru (was 3ca215d).
  • Merge
    • Untuk menggabungkan dua buah branch
    • $ git merge fitur-baru
    • Updating 4450787..4b1fb2b
    • Fast-forward
    • file.txt | 2 ++
    • 1 files changed, 2 insertions(+), 0 deletions(-)
  • Merge Conflict
    • Conflict terjadi karena terjadi perubahan code pada tempat yang sama.
    • Solusinya programmer harus berkomunikasi , code mana yang dipakai dan paling benar
  • Cara Mengatasi Conflict
    • Edit file yang conflict dengan text editor (nano, vi , gedit, geany,dll)
    • Dengan git mergetoot (meld)
    • $ git mergetool
  • Remote Branch
    • Push branch ke remote
    • $ git push origin fitur-baru
    • Copy branch dari remote ke local
    • $ git push origin fitur-baru
    • Copy branch dari remote ke local
    • $ git checkout -b testing remotes/origin/testing
    • Branch testing set up to track remote branch testing from origin.
    • Switched to a new branch 'testing'
    • $ git branch
    • master
    • * testing
  • Rebase
    • Untuk merapikan atau memanipulasi commit
  • Finish
  • Git Fanani M. Ihsan [email_address]