Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pengenalan Git

Pengenalan Git

Pengenalan Git sebagai aplikasi version control.

Prasetiyo Hadi Purwoko

December 19, 2015
Tweet

More Decks by Prasetiyo Hadi Purwoko

Other Decks in Education

Transcript

  1. 18 December 2015 2 whoami • A mere Linux/ Unix

    user • 3+ years system administrator • ITB Mail SysAdm prasetiyohadi prasetiyohadi
  2. 18 December 2015 3 Outline • Pengenalan Git • Konfigurasi

    Git • Cloning a Repository • Two Stage Commit
  3. 18 December 2015 5 Git • Distributed Version Control •

    Source Code Management system • Bekerja di local copy / local directory
  4. 18 December 2015 6 Git Command Line • Perintah Git

    sering dijalankan melalui command line. • Pengguna Git diharapkan memiliki pengalaman menggunakan command line, walaupun ada juga GUI (Graphic User Interface) untuk Git.
  5. 18 December 2015 7 Command Line Interface (CLI) • Untuk

    membuka CLI, lakukan cara berikut, – Mac: cari aplikasi Terminal melalui Spotlight [command-space] – Linux: buka shell favorit (Bash, Fish, dll) – Windows: download Git for Windows dari GitHub yang menyediakan Bash emulator
  6. 18 December 2015 9 Git Version • Cek versi Git

    yang terinstal dengan perintah git --version
  7. 18 December 2015 12 Konfigurasi Git • Untuk melihat konfigurasi

    yang sudah berlaku pada Git gunakan perintah berikut git config --list
  8. 18 December 2015 13 Konfigurasi Username dan Email • Git

    menggunakan username dan email untuk membuat identifikasi unik untuk setiap commit yang kita buat git config --global user.name "Your Name" git config --global user.email "your email" • Gunakan email akun Github untuk mempermudah integrasi dengan Github
  9. 18 December 2015 14 Editor Teks • Git menggunakan teks

    editor untuk melakukan perubahan file pada proses commits atau menyelesaikan merge conflicts • Untuk menggunakan editor teks Sublime Text, gunakan perintah berikut git config --global core.editor "subl -n -w"
  10. 18 December 2015 15 Konfigurasi Autocrlf • Autocrlf (Auto carriage

    return line feed) adalah konfigurasi yang mengatur akhir baris dan spasi antar baris • Untuk pengguna Windows gunakan git config --global core.autocrlf true • Untuk pengguna Mac dan Linux gunakan git config --global core.autocrlf input git config --global core.autocrlf input
  11. 18 December 2015 16 Konfigurasi Default Push • Push adalah

    perintah untuk mengirim perubahan dari direktori lokal ke server remote • Untuk melakukan push semua branch, git config --global push.default matching • Untuk melakukan push hanya untuk branch yang sedang dikerjakan, git config --global push.default simple • Untuk saat ini gunakan push.default simple
  12. 18 December 2015 17 Konfigurasi Git • Gunakan perintah git

    config --list untuk melihat konfigurasi saat ini • Konfigurasi sama yang berbeda tingkat akan tetap ditampilkan • Konfigurasi pada tingkat yang paling dasar adalah konfigurasi yang berlaku untuk repositori tertentu
  13. 18 December 2015 20 Clone a Repository • Buat branch

    baru di Github dan salin clone URL dari repositori kita (https) • Untuk melakukan clone jalankan git clone <clone url> cd ke direktori repo dan jalankan git status • Perintah git branch akan menampilkan branch "master"
  14. 18 December 2015 21 Remote Branches • Gunakan perintah git

    branch -a untuk melihat semua remote branch • Perintah git checkout <branch name> digunakan untuk membuat branch yang menyerupai remote branch
  15. 18 December 2015 22 Perubahan pada File Lokal • Kita

    bisa melakukan perubahan yang diperlukan setelah melakukan clone dan checkout ke branch yang akan kita gunakan
  16. 18 December 2015 25 Working Area • Working area: file/direktori

    yang berubah yang belum menjadi bagian dari version controlled directory • untracked: file/direktori baru • modified: file/direktori yang berubah
  17. 18 December 2015 26 Staging Area • Staging area: kumpulan

    file yang berisi perubahan yang dipersiapkan untuk dimasukkan ke riwayat branch • Untuk memasukkan perubahan ke staging area gunakan git add <nama file/dir> atau git add . (semua file/dir)
  18. 18 December 2015 27 Committed Files/Directories • Committed files/directories: perubahan

    yang sudah dimasukkan ke dalam riwayat branch • Untuk melakukan commit pada file/direktori di staging area gunakan perintah git commit -m "commit message"
  19. 18 December 2015 28 Push Changes • Pastikan tidak ada

    file di working area • Gunakan perintah git push -u origin <branch name> untuk mengirimkan perubahan ke remote repository (Github) • Buat pull request untuk melakukan penggabungan (merge) branch yang berisi perubahan ke branch "master"
  20. 18 December 2015 29 Merge Changes • Branch yang berisi

    perubahan dapat digabungkan (merge) dengan cara membuat Pull Request (PR) di Github • Merge juga dapat dilakukan secara lokal dengan perintah git checkout master git merge <branch name to merge> sebelum melakukan git push
  21. 18 December 2015 30 Pull Changes • Setelah melakukan merge,

    gunakan perintah git pull untuk melakukan update terhadap branch di repositori lokal • Untuk melihat branch yang sudah digabungkan dengan branch "master" gunakan perintah git branch --merged • Branch yang sudah tidak ada di remote repository tetapi masih ada di repositori lokal dapat dihapus dengan git branch -d <branch name>
  22. 18 December 2015 31 Why Command Line (1) "Nothing can

    beat the command line. In some cases the GUI just doesn't work, and then the only way out is to fire a command line and fix things." -- ierax [from] programmers.stackexchange.com
  23. 18 December 2015 32 Why Command Line (2) "If I

    had to keep just one thing from my experience with computing - the mental challenges, the close friendships formed in a datacenter at 2AM, the infinite ladder of competence to climb, touching users' lives and reigning over PBs of precious data, the cushy jobs and comfortable life - keep just one thing - it'd be that Godly feeling." -- Yaniv Aknin [from] programmers.stackexchange.com
  24. 18 December 2015 33 ./done • Questions? Feedback? • Next

    topics (and next presenter)? – [Web, Email, FTP, DNS, SQL, NoSQL] Servers – Monitoring [Cacti, Icinga, Nagios, Fluentd, Sensu] – Cloud Computing [OpenStack, Vagrant, Docker, Kubernetes] – DevOps [Ansible, Puppet, PXE] – High Performance Computing [Linux Cluster] – Web Framework [Flask, Django, NodeJS] – Internet of Thing [Raspberry Pi, Arduino]