Your SlideShare is downloading. ×
0
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Git
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Git

8,536

Published on

Git Version Control

Git Version Control

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
8,536
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
100
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. Git Fanani M. Ihsan [email_address]
  2. Version Control <ul><li>Mencatat semua perubahan source code
  3. Tool coding para programmer
  4. Documentasi source code </li></ul>
  5. Type Version Control <ul><li>Local VCS
  6. Centralized VCS (Subversion)
  7. Distributed VCS (Git) </li></ul>
  8. Local VCS
  9. Centralized VCS
  10. Distributed VCS
  11. Project Using Git <ul><li>Git
  12. Linux Kernel
  13. Perl
  14. Eclipse
  15. Gnome
  16. KDE </li></ul><ul><li>Qt
  17. Ruby on Rails
  18. Android
  19. PostgreSQL
  20. Debian
  21. X.org </li></ul>
  22. Git Workflow
  23. Installasi Git <ul><li>Debian based
  24. # sudo apt-get install git-core
  25. Redhat Based
  26. # yum install git-core
  27. Windows
  28. Bisa gunakan mysgit (CLI) , tortoise git (GUI)
  29. http://code.google.com/p/msysgit
  30. Mac
  31. Tersedia installer for mac http://code.google.com/p/git-osx-installer </li></ul>
  32. First Configuration <ul><li>Your Identity
  33. $ git config --global user.name &quot;Fanani M. Ihsan&quot;
  34. $ git config --global user.email contact@fanani.net
  35. Additional
  36. $ git config --global color.ui true
  37. $ git config --global core.editor geany
  38. Cek Configuration
  39. $ git config --list
  40. user.name=Fanani M. Ihsan
  41. user.email=contact@fanani.net
  42. color.ui=true
  43. core.editor=geany </li></ul>
  44. Git Basic
  45. Create First Repository <ul><li>Buat directory
  46. Git init
  47. Add
  48. First commit
  49. Enjoy ! </li></ul>
  50. Git Basic Operation Source from : http://endy.artivisi.com
  51. Add & Commit <ul><li>Add : digunakan untuk menambahkan daftar file ke staging area
  52. Commit : digunakan untuk memindah file yang ada di stagging area ke dalam repository </li></ul>
  53. Tracking Status <ul><li>Git status
  54. untuk melihat status perubahan bisa gunakan git status file yang ada di working directory , dan stagging area
  55. $ git status
  56. Git Diff
  57. Digunakan untuk membandingkan perubahan sebelum perubahan
  58. $ git diff
  59. Meld
  60. Sama seperti git diff fungsinya , tapi dengan tampilan gui , sehingga lebih mudah di baca </li></ul>
  61. Ignore Files <ul><li>Terkadang ada file yang tidak seharusnya di commit , sepert file *.exe , *.class , *.pyc , atau file logging.
  62. Untuk itu buat file .gitignore untuk memberikan daftar file yang tidak akan terdeteksi perubahnnya oleh git </li></ul>
  63. Remove And Delete <ul><li>Move file
  64. $ git mv file_from file_to
  65. Remove file
  66. $ git rm file_to_remove </li></ul>
  67. Commit History <ul><li>Git Logging
  68. http://progit.org/book/ch2-3.html
  69. Gitg
  70. Tool yang sangat membantu melihat log perubahan dengan basis gui
  71. $ sudo apt-get install gitg </li></ul>
  72. Manipulasi Commit <ul><li>Git commit –ammend
  73. Digunakan untuk menambahkan perubahan pada commit terahir </li></ul>
  74. Undo File <ul><li>Git reset
  75. $ git reset
  76. Git reset - -hard HEAD
  77. $ git reset - -hard HEAD
  78. Git resset - -hard <log number>
  79. $ git reset - -hard 7fc6387 </li></ul>
  80. Git Remote and Github
  81. Working With Remote <ul><li>Local Repository
  82. Local PC masing-masing
  83. Remote Repository
  84. Server git , such as : Github </li></ul>
  85. Github <ul>Langkah membuat repository di github </ul><ul><li>Register
  86. Create local repository
  87. Create Github repository
  88. Add remote repo pada local repository
  89. Push Master Branch </li></ul>
  90. Autentifikasi <ul><li>Https
  91. Menggunakan username dan password
  92. Ssh-keygen
  93. Menggunakan ssh public key </li></ul>
  94. Create SSH Keygen <ul><li>Generetate ssh-keygen
  95. $ ssh-keygen
  96. Result
  97. $ ls ~/.ssh
  98. id_rsa id_rsa.pub
  99. Public Key
  100. Copy to github
  101. Private Key
  102. Pasangan dari public key , harus di jaga kerahasiaannya karena berurusan dengan security </li></ul>
  103. Setup Project Github <ul><li>Buat local repository seperti pada slide sebelumnya
  104. Tambahkan remote repository di github
  105. $ git remote add origin git@github.com: username / <project_name> .git
  106. Upload master branch
  107. $ git push -u origin master
  108. Cek daftar remote repository
  109. $ git remote -v
  110. Enjoy !!! </li></ul>
  111. Clone, Pull, dan Push <ul><li>Clone
  112. Digunakan untuk menggandakan repository remote ke local.
  113. Pull
  114. Digunakan untuk mengupdate perubahan version dari remote ke local.
  115. Push
  116. Digunakan untuk mengupload perubaahan yang terjadi dari local ke remote </li></ul>
  117. Multiple Remote <ul><li>Add remote
  118. $ git remote add other git@github.com:fanani/project-git-2.git
  119. Push Remote baru
  120. $ git push -u other master
  121. Fetching (sinkonisasi antara origin dan other)
  122. $ git fetch other
  123. 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
  124. Inspeksi hubungan remote dan local
  125. $ git remote show origin </li></ul>
  126. Rename & Remove Remote <ul><li>Rename
  127. $ git remote rename <old_remote_name> <new_remote_name>
  128. Remove
  129. $ git remote rm <remote_name>
  130. Cek
  131. $ git remote -v </li></ul>
  132. Tagging <ul><li>Tag biasanya digunakan untuk menandai sebuah versi aplikasi .
  133. Create Tag
  134. $ git tag -a v1.0 -m &quot;ini versi 1.0&quot;
  135. List Tag
  136. $ git tag
  137. Show Detail
  138. $ git show v1.0 </li></ul>
  139. Git Advaced
  140. Branching <ul><li>Fitur hampir ada di setiap version control
  141. Untuk memastikan code tetap bersih pada branch utama
  142. Default branch adalah master </li></ul>
  143. Branch Administration <ul><li>Create branch
  144. $ git branch fitur-baru
  145. Show branch list
  146. $ git branch
  147. fitur-baru
  148. * master
  149. Pindah branch
  150. $ git checkout fitur-baru
  151. Switched to branch 'fitur-baru'
  152. Delete branch
  153. $ git branch -d fitur-baru
  154. Deleted branch fitur-baru (was 3ca215d). </li></ul>
  155. Merge <ul><li>Untuk menggabungkan dua buah branch
  156. $ git merge fitur-baru
  157. Updating 4450787..4b1fb2b
  158. Fast-forward
  159. file.txt | 2 ++
  160. 1 files changed, 2 insertions(+), 0 deletions(-) </li></ul>
  161. Merge Conflict <ul><li>Conflict terjadi karena terjadi perubahan code pada tempat yang sama.
  162. Solusinya programmer harus berkomunikasi , code mana yang dipakai dan paling benar </li></ul>
  163. Cara Mengatasi Conflict <ul><li>Edit file yang conflict dengan text editor (nano, vi , gedit, geany,dll)
  164. Dengan git mergetoot (meld)
  165. $ git mergetool </li></ul>
  166. Remote Branch <ul><li>Push branch ke remote
  167. $ git push origin fitur-baru
  168. Copy branch dari remote ke local
  169. $ git push origin fitur-baru
  170. Copy branch dari remote ke local
  171. $ git checkout -b testing remotes/origin/testing
  172. Branch testing set up to track remote branch testing from origin.
  173. Switched to a new branch 'testing'
  174. $ git branch
  175. master
  176. * testing </li></ul>
  177. Rebase <ul><li>Untuk merapikan atau memanipulasi commit </li></ul>
  178. Finish
  179. Git Fanani M. Ihsan [email_address]

×