Top Banner
nge-Git bareng Mizan
220

Nge-GIT (Belajar Git Bareng)

Apr 13, 2017

Download

Technology

Mizan Riqzia
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Nge-GIT (Belajar Git Bareng)

nge-Gitbareng Mizan

Page 2: Nge-GIT (Belajar Git Bareng)

Perkenalkan

Page 3: Nge-GIT (Belajar Git Bareng)

MizanGeneral Manager T’Labhttp://tlab.co.id

Pengguna Git

Ilkomp 2006

Page 4: Nge-GIT (Belajar Git Bareng)

Semacam apa Git ?

Page 5: Nge-GIT (Belajar Git Bareng)

Git

Open sourcedistributed version control system

designed for speed & efficiency

Page 6: Nge-GIT (Belajar Git Bareng)

Apa pula Version Control?

Page 7: Nge-GIT (Belajar Git Bareng)

● Sistem untuk mencatat perubahan data

● Memungkinkan pengembangan secara bersama

● Tahu siapa yang merubah dan kapan data dirubah

● Memungkinkan mengembalikan data seperti semula

Version Control

Page 8: Nge-GIT (Belajar Git Bareng)

Git

mercurial (hg)

bazaar

subversion (svn)

concurrent version system (cvs)

perforce

visual source safe

Contoh Version Control

Page 9: Nge-GIT (Belajar Git Bareng)

Apa maksud distributed version control ?

Page 10: Nge-GIT (Belajar Git Bareng)

(Hampir) semua data berada di lokal

Page 11: Nge-GIT (Belajar Git Bareng)

Keuntungan Data di Lokal

● Ada backup

● Bekerja jadi lebih cepat

● Bekerja offline (tanpa koneksi internet)

Page 12: Nge-GIT (Belajar Git Bareng)

Apa yang bisa dilakukan tanpa Internet

● Performing a diff

● Viewing file history

● Committing change

● Merging branches

● Obtaining other revisions of a ifle

● Switching branches

Page 13: Nge-GIT (Belajar Git Bareng)

Maksud

“designed for speed & efficiency” ?

Page 14: Nge-GIT (Belajar Git Bareng)

Data (hampir) tidak dihapus

Data di-Snapshots

Page 15: Nge-GIT (Belajar Git Bareng)

Perbedaan Patch & Snapshots

Storing data as changes to a base version of each file

Storing data as snapshots of the project over time

Page 16: Nge-GIT (Belajar Git Bareng)
Page 17: Nge-GIT (Belajar Git Bareng)
Page 18: Nge-GIT (Belajar Git Bareng)
Page 19: Nge-GIT (Belajar Git Bareng)
Page 20: Nge-GIT (Belajar Git Bareng)
Page 21: Nge-GIT (Belajar Git Bareng)
Page 22: Nge-GIT (Belajar Git Bareng)
Page 23: Nge-GIT (Belajar Git Bareng)
Page 24: Nge-GIT (Belajar Git Bareng)
Page 25: Nge-GIT (Belajar Git Bareng)
Page 26: Nge-GIT (Belajar Git Bareng)
Page 27: Nge-GIT (Belajar Git Bareng)
Page 28: Nge-GIT (Belajar Git Bareng)
Page 29: Nge-GIT (Belajar Git Bareng)
Page 30: Nge-GIT (Belajar Git Bareng)
Page 31: Nge-GIT (Belajar Git Bareng)

Basic Git

Page 32: Nge-GIT (Belajar Git Bareng)

Langkah awal

Page 33: Nge-GIT (Belajar Git Bareng)

$ git config --global user.name “Mizan”

$ git config --global user.email “[email protected]

Page 34: Nge-GIT (Belajar Git Bareng)

Getting a Repo

Page 35: Nge-GIT (Belajar Git Bareng)

Membuat Repo

Page 36: Nge-GIT (Belajar Git Bareng)

Git init

Page 37: Nge-GIT (Belajar Git Bareng)

$ touch README.md

$ git init

Page 38: Nge-GIT (Belajar Git Bareng)

$ tree -a.├── .git│ ├── branches│ ├── config│ ├── description│ ├── HEAD│ ├── hooks│ │ ├── applypatch-msg.sample│ │ ├── commit-msg.sample│ │ ├── post-update.sample│ │ ├── pre-applypatch.sample│ │ ├── pre-commit.sample│ │ ├── prepare-commit-msg.sample│ │ ├── pre-push.sample│ │ ├── pre-rebase.sample│ │ └── update.sample│ ├── info│ │ └── exclude│ ├── objects│ │ ├── info│ │ └── pack│ └── refs│ ├── heads│ └── tags└── README.md

10 directories, 14 files

Page 39: Nge-GIT (Belajar Git Bareng)

$ tree -a.├── .git│ ├── branches│ ├── config│ ├── description│ ├── HEAD│ ├── hooks│ │ ├── applypatch-msg.sample│ │ ├── commit-msg.sample│ │ ├── post-update.sample│ │ ├── pre-applypatch.sample│ │ ├── pre-commit.sample│ │ ├── prepare-commit-msg.sample│ │ ├── pre-push.sample│ │ ├── pre-rebase.sample│ │ └── update.sample│ ├── info│ │ └── exclude│ ├── objects│ │ ├── info│ │ └── pack│ └── refs│ ├── heads│ └── tags└── README.md

10 directories, 14 files

Page 40: Nge-GIT (Belajar Git Bareng)

$ touch README.md

$ git init

$ git add .

Page 41: Nge-GIT (Belajar Git Bareng)

tree -a.├── .git│ ├── branches│ ├── config│ ├── description│ ├── HEAD│ ├── hooks│ │ ├── applypatch-msg.sample│ │ ├── commit-msg.sample│ │ ├── post-update.sample│ │ ├── pre-applypatch.sample│ │ ├── pre-commit.sample│ │ ├── prepare-commit-msg.sample│ │ ├── pre-push.sample│ │ ├── pre-rebase.sample│ │ └── update.sample│ ├── index│ ├── info│ │ └── exclude│ ├── objects│ │ ├── e6│ │ │ └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391│ │ ├── info│ │ └── pack│ └── refs│ ├── heads│ └── tags└── README.md

11 directories, 16 files

Page 42: Nge-GIT (Belajar Git Bareng)

$ touch README.md

$ git init

$ git add .

$ git commit -m ‘first commit’

Page 43: Nge-GIT (Belajar Git Bareng)

tree -a.├── .git│ ├── branches│ ├── COMMIT_EDITMSG│ ├── config│ ├── description│ ├── HEAD│ ├── hooks│ │ ├── applypatch-msg.sample│ │ ├── commit-msg.sample│ │ ├── post-update.sample│ │ ├── pre-applypatch.sample│ │ ├── pre-commit.sample│ │ ├── prepare-commit-msg.sample│ │ ├── pre-push.sample│ │ ├── pre-rebase.sample│ │ └── update.sample│ ├── index│ ├── info / exclude│ ├── logs│ │ ├── HEAD│ │ └── refs / heads / master│ ├── objects│ │ ├── e6 / 9de29bb2d1d6434b8b29ae775ad8c2e48c5391│ │ ├── f9 / 3e3a1a1525fb5b91020da86e44810c87a2d7bc│ │ ├── ff / 0952b14f24609b47d910df46ee944650f60054│ │ ├── info│ │ └── pack│ └── refs│ ├── heads / master│ └── tags└── README.md

16 directories, 22 files

Page 44: Nge-GIT (Belajar Git Bareng)

Membuat Repo Clone

Page 45: Nge-GIT (Belajar Git Bareng)

Git Clone

Page 46: Nge-GIT (Belajar Git Bareng)

$ git clone [email protected]:laravel/laravel.git

Atau

$ git clone https://github.com/laravel/laravel.git

Page 47: Nge-GIT (Belajar Git Bareng)

$ git clone https://github.com/laravel/laravel.gitCloning into 'laravel'...remote: Counting objects: 25800, done.remote: Compressing objects: 100% (41/41), done.remote: Total 25800 (delta 23), reused 0 (delta 0), pack-reused 25759Receiving objects: 100% (25800/25800), 9.69 MiB | 116.00 KiB/s, done.Resolving deltas: 100% (12922/12922), done.Checking connectivity... done.$ cd laravel$ lsapp composer.json gulpfile.js phpunit.xml resources testsartisan config package.json public server.phpbootstrap database phpspec.yml readme.md storage

Page 48: Nge-GIT (Belajar Git Bareng)

A Basic Workflow

Page 49: Nge-GIT (Belajar Git Bareng)

A Basic Workflow

● Edit files

● Stage the changes

● Review your changes

● Commit the changes

Page 50: Nge-GIT (Belajar Git Bareng)
Page 51: Nge-GIT (Belajar Git Bareng)
Page 52: Nge-GIT (Belajar Git Bareng)
Page 53: Nge-GIT (Belajar Git Bareng)
Page 54: Nge-GIT (Belajar Git Bareng)

A Basic Workflow

● Edit files● Stage the changes

● Review your changes

● Commit the changes

Page 55: Nge-GIT (Belajar Git Bareng)

$ vim README.md

# My First Git

Senangnya bisa menggunakan git

Page 56: Nge-GIT (Belajar Git Bareng)

$ git statusOn branch masterChanges not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in..

modified: README.md

no changes added to commit (use "git add" and/or "git com..

Page 57: Nge-GIT (Belajar Git Bareng)

A Basic Workflow

● Edit files

● Stage the changes● Review your changes

● Commit the changes

Page 58: Nge-GIT (Belajar Git Bareng)

Git Add

Page 59: Nge-GIT (Belajar Git Bareng)
Page 60: Nge-GIT (Belajar Git Bareng)
Page 61: Nge-GIT (Belajar Git Bareng)

$ git add .$ git statusOn branch masterChanges to be committed: (use "git reset HEAD <file>..." to unstage)

modified: README.md

Page 62: Nge-GIT (Belajar Git Bareng)

$ git add .$ git statusOn branch masterChanges THAT ARE STAGED: (use "git reset HEAD <file>..." to unstage)

modified: README.md

Page 63: Nge-GIT (Belajar Git Bareng)

stage filesetelah melakukan perubahan

Page 64: Nge-GIT (Belajar Git Bareng)

stage filesetelah melakukan perubahan

Page 65: Nge-GIT (Belajar Git Bareng)

A Basic Workflow

● Edit files

● Stage the changes

● Review your changes

● Commit the changes

Page 66: Nge-GIT (Belajar Git Bareng)

Git commit

Page 67: Nge-GIT (Belajar Git Bareng)
Page 68: Nge-GIT (Belajar Git Bareng)
Page 69: Nge-GIT (Belajar Git Bareng)

$ git commit

mencoba commit# Please enter the commit message for your changes. Lines ..# with '#' will be ignored, and an empty message aborts ..# On branch master# Changes to be committed:# modified: README.md

Page 70: Nge-GIT (Belajar Git Bareng)

$ git commit[master e0b06a1] mencoba commit 1 file changed, 4 insertions(+)

Page 71: Nge-GIT (Belajar Git Bareng)

A Basic Workflow

● Edit files vim / emacs / etc

● Stage the changes git add (file)

● Review your changes git status

● Commit the changes git commit

Page 72: Nge-GIT (Belajar Git Bareng)

A Basicer Workflow

● Edit files vim / emacs / etc

● Stage & Commit git commit -a

Page 73: Nge-GIT (Belajar Git Bareng)

Another Basic Git

Page 74: Nge-GIT (Belajar Git Bareng)

Another Basic Git

● Ignoring Files

● Removing Files

● Moving Files

Page 75: Nge-GIT (Belajar Git Bareng)

Ignoring Files

.gitignore

Page 76: Nge-GIT (Belajar Git Bareng)

$ touch .gitignore$ vim .gitignore.env$ touch .env$ git statusOn branch masterUntracked files: (use "git add <file>..." to include in what will be..

.gitignore

nothing added to commit but untracked files present..

$ git add .$ git commit -m ‘add gitignore’

Page 77: Nge-GIT (Belajar Git Bareng)

Removing Files

git rm <file>

Page 78: Nge-GIT (Belajar Git Bareng)

$ git rm README.md$ git statusOn branch masterChanges to be committed: (use "git reset HEAD <file>..." to unstage)

deleted: README.md

Page 79: Nge-GIT (Belajar Git Bareng)

Moving Files

git mv <file>

Page 80: Nge-GIT (Belajar Git Bareng)

$ git mv README.md README$ git statusOn branch masterChanges to be committed: (use "git reset HEAD <file>..." to unstage)

renamed: README.md -> README

Page 81: Nge-GIT (Belajar Git Bareng)

Undo

Page 82: Nge-GIT (Belajar Git Bareng)

Undo Commit

git commit --amend

Page 83: Nge-GIT (Belajar Git Bareng)

Unstaging a Staged File

git reset HEAD <file>

Page 84: Nge-GIT (Belajar Git Bareng)

Unmodifiying a Modified File

git checkout -- <file>

Page 85: Nge-GIT (Belajar Git Bareng)

Branching

Page 86: Nge-GIT (Belajar Git Bareng)

git branch & git checkout

Page 87: Nge-GIT (Belajar Git Bareng)
Page 88: Nge-GIT (Belajar Git Bareng)
Page 89: Nge-GIT (Belajar Git Bareng)
Page 90: Nge-GIT (Belajar Git Bareng)
Page 91: Nge-GIT (Belajar Git Bareng)
Page 92: Nge-GIT (Belajar Git Bareng)
Page 93: Nge-GIT (Belajar Git Bareng)
Page 94: Nge-GIT (Belajar Git Bareng)
Page 95: Nge-GIT (Belajar Git Bareng)
Page 96: Nge-GIT (Belajar Git Bareng)
Page 97: Nge-GIT (Belajar Git Bareng)
Page 98: Nge-GIT (Belajar Git Bareng)
Page 99: Nge-GIT (Belajar Git Bareng)
Page 100: Nge-GIT (Belajar Git Bareng)
Page 101: Nge-GIT (Belajar Git Bareng)
Page 102: Nge-GIT (Belajar Git Bareng)
Page 103: Nge-GIT (Belajar Git Bareng)

Git Merge

Page 104: Nge-GIT (Belajar Git Bareng)
Page 105: Nge-GIT (Belajar Git Bareng)
Page 106: Nge-GIT (Belajar Git Bareng)
Page 107: Nge-GIT (Belajar Git Bareng)
Page 108: Nge-GIT (Belajar Git Bareng)
Page 109: Nge-GIT (Belajar Git Bareng)
Page 110: Nge-GIT (Belajar Git Bareng)
Page 111: Nge-GIT (Belajar Git Bareng)
Page 112: Nge-GIT (Belajar Git Bareng)

Non linear development

Page 113: Nge-GIT (Belajar Git Bareng)

● clone the code that is in production● create a branch for issue #53 (iss53)● work for 10 minutes● someone ask for a hotfix for issue #102● checkout ‘production’● create a branch (iss102)● fix the issue● checkout ‘production’ merge ‘iss102’● push ‘production’● checkout ‘iss53’ and keep working

Page 114: Nge-GIT (Belajar Git Bareng)
Page 115: Nge-GIT (Belajar Git Bareng)
Page 116: Nge-GIT (Belajar Git Bareng)
Page 117: Nge-GIT (Belajar Git Bareng)
Page 118: Nge-GIT (Belajar Git Bareng)
Page 119: Nge-GIT (Belajar Git Bareng)
Page 120: Nge-GIT (Belajar Git Bareng)
Page 121: Nge-GIT (Belajar Git Bareng)
Page 122: Nge-GIT (Belajar Git Bareng)
Page 123: Nge-GIT (Belajar Git Bareng)
Page 124: Nge-GIT (Belajar Git Bareng)
Page 125: Nge-GIT (Belajar Git Bareng)

Distributed Workflow

fetch, pull, & push

Page 126: Nge-GIT (Belajar Git Bareng)

pull = fetch + merge

Page 127: Nge-GIT (Belajar Git Bareng)

a Who in the what now?

Page 128: Nge-GIT (Belajar Git Bareng)
Page 129: Nge-GIT (Belajar Git Bareng)
Page 130: Nge-GIT (Belajar Git Bareng)
Page 131: Nge-GIT (Belajar Git Bareng)
Page 132: Nge-GIT (Belajar Git Bareng)
Page 133: Nge-GIT (Belajar Git Bareng)
Page 134: Nge-GIT (Belajar Git Bareng)
Page 135: Nge-GIT (Belajar Git Bareng)

Multiple Remotes

Page 136: Nge-GIT (Belajar Git Bareng)
Page 137: Nge-GIT (Belajar Git Bareng)
Page 138: Nge-GIT (Belajar Git Bareng)
Page 139: Nge-GIT (Belajar Git Bareng)
Page 140: Nge-GIT (Belajar Git Bareng)
Page 141: Nge-GIT (Belajar Git Bareng)
Page 142: Nge-GIT (Belajar Git Bareng)
Page 143: Nge-GIT (Belajar Git Bareng)
Page 144: Nge-GIT (Belajar Git Bareng)
Page 145: Nge-GIT (Belajar Git Bareng)
Page 146: Nge-GIT (Belajar Git Bareng)
Page 147: Nge-GIT (Belajar Git Bareng)
Page 148: Nge-GIT (Belajar Git Bareng)
Page 149: Nge-GIT (Belajar Git Bareng)
Page 150: Nge-GIT (Belajar Git Bareng)
Page 151: Nge-GIT (Belajar Git Bareng)
Page 152: Nge-GIT (Belajar Git Bareng)
Page 153: Nge-GIT (Belajar Git Bareng)
Page 154: Nge-GIT (Belajar Git Bareng)
Page 155: Nge-GIT (Belajar Git Bareng)
Page 156: Nge-GIT (Belajar Git Bareng)
Page 157: Nge-GIT (Belajar Git Bareng)
Page 158: Nge-GIT (Belajar Git Bareng)
Page 159: Nge-GIT (Belajar Git Bareng)
Page 160: Nge-GIT (Belajar Git Bareng)

Popular Workflows

Page 161: Nge-GIT (Belajar Git Bareng)

Central Repository Model

Page 162: Nge-GIT (Belajar Git Bareng)
Page 163: Nge-GIT (Belajar Git Bareng)
Page 164: Nge-GIT (Belajar Git Bareng)
Page 165: Nge-GIT (Belajar Git Bareng)
Page 166: Nge-GIT (Belajar Git Bareng)
Page 167: Nge-GIT (Belajar Git Bareng)
Page 168: Nge-GIT (Belajar Git Bareng)
Page 169: Nge-GIT (Belajar Git Bareng)

Dictator and Lieutenants Model

Page 170: Nge-GIT (Belajar Git Bareng)
Page 171: Nge-GIT (Belajar Git Bareng)
Page 172: Nge-GIT (Belajar Git Bareng)
Page 173: Nge-GIT (Belajar Git Bareng)
Page 174: Nge-GIT (Belajar Git Bareng)
Page 175: Nge-GIT (Belajar Git Bareng)
Page 176: Nge-GIT (Belajar Git Bareng)
Page 177: Nge-GIT (Belajar Git Bareng)

Integration Manager Model

Page 178: Nge-GIT (Belajar Git Bareng)
Page 179: Nge-GIT (Belajar Git Bareng)
Page 180: Nge-GIT (Belajar Git Bareng)
Page 181: Nge-GIT (Belajar Git Bareng)
Page 182: Nge-GIT (Belajar Git Bareng)
Page 183: Nge-GIT (Belajar Git Bareng)
Page 184: Nge-GIT (Belajar Git Bareng)
Page 185: Nge-GIT (Belajar Git Bareng)
Page 186: Nge-GIT (Belajar Git Bareng)
Page 187: Nge-GIT (Belajar Git Bareng)
Page 188: Nge-GIT (Belajar Git Bareng)

Remotes Are Branches

Page 189: Nge-GIT (Belajar Git Bareng)
Page 190: Nge-GIT (Belajar Git Bareng)
Page 191: Nge-GIT (Belajar Git Bareng)
Page 192: Nge-GIT (Belajar Git Bareng)
Page 193: Nge-GIT (Belajar Git Bareng)
Page 194: Nge-GIT (Belajar Git Bareng)
Page 195: Nge-GIT (Belajar Git Bareng)
Page 196: Nge-GIT (Belajar Git Bareng)
Page 197: Nge-GIT (Belajar Git Bareng)
Page 198: Nge-GIT (Belajar Git Bareng)
Page 199: Nge-GIT (Belajar Git Bareng)
Page 200: Nge-GIT (Belajar Git Bareng)
Page 201: Nge-GIT (Belajar Git Bareng)
Page 202: Nge-GIT (Belajar Git Bareng)
Page 203: Nge-GIT (Belajar Git Bareng)
Page 204: Nge-GIT (Belajar Git Bareng)
Page 205: Nge-GIT (Belajar Git Bareng)

Working with Remotes

Page 206: Nge-GIT (Belajar Git Bareng)

Showing Your Remotes

git remotegit remote -v

Page 207: Nge-GIT (Belajar Git Bareng)

Adding Remote Repositories

git remote add <remote-name> <URL>

Page 208: Nge-GIT (Belajar Git Bareng)

Fetching & Pulling from Remotes

git remote <remote-name>

Page 209: Nge-GIT (Belajar Git Bareng)

Pushing to Your Remotes

git push <remote> <branch>

Page 210: Nge-GIT (Belajar Git Bareng)

Inspecting a Remote

git remote show <remote-name>

Page 211: Nge-GIT (Belajar Git Bareng)

Renaming & Remove Remotes

git remote rename <remote-name> <remote-newname>

git remote rm <remote-name>

Page 212: Nge-GIT (Belajar Git Bareng)

Tagging

Page 213: Nge-GIT (Belajar Git Bareng)

Listing Your Tags

git tag

Page 214: Nge-GIT (Belajar Git Bareng)

Creating Tags

Lightweight tag Annotated tags(pointer) (store as full object)

Page 215: Nge-GIT (Belajar Git Bareng)

Annotated Tags

git tag -a <tagname>

Page 216: Nge-GIT (Belajar Git Bareng)

Listing Lightweight Tags

git tag <tagname>

Page 217: Nge-GIT (Belajar Git Bareng)

Tagging Later

git tag -a <tagname> <commit>

Page 218: Nge-GIT (Belajar Git Bareng)

Sharing Tags

git push <remote> <tagname>

Page 219: Nge-GIT (Belajar Git Bareng)

Checking out Tags

git checkout -b <branchname> <tagname>

Page 220: Nge-GIT (Belajar Git Bareng)

Thank you for watching

any question?