MizanGeneral Manager T’Labhttp://tlab.co.id
Pengguna Git
Ilkomp 2006
● Sistem untuk mencatat perubahan data
● Memungkinkan pengembangan secara bersama
● Tahu siapa yang merubah dan kapan data dirubah
● Memungkinkan mengembalikan data seperti semula
Version Control
Git
mercurial (hg)
bazaar
subversion (svn)
concurrent version system (cvs)
perforce
visual source safe
Contoh Version Control
Keuntungan Data di Lokal
● Ada backup
● Bekerja jadi lebih cepat
● Bekerja offline (tanpa koneksi internet)
Apa yang bisa dilakukan tanpa Internet
● Performing a diff
● Viewing file history
● Committing change
● Merging branches
● Obtaining other revisions of a ifle
● Switching branches
Perbedaan Patch & Snapshots
Storing data as changes to a base version of each file
Storing data as snapshots of the project over time
$ 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
$ 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
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
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
$ git clone [email protected]:laravel/laravel.git
Atau
$ git clone https://github.com/laravel/laravel.git
$ 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
$ 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..
$ git add .$ git statusOn branch masterChanges to be committed: (use "git reset HEAD <file>..." to unstage)
modified: README.md
$ git add .$ git statusOn branch masterChanges THAT ARE STAGED: (use "git reset HEAD <file>..." to unstage)
modified: README.md
$ 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
A Basic Workflow
● Edit files vim / emacs / etc
● Stage the changes git add (file)
● Review your changes git status
● Commit the changes git commit
$ 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’
$ git rm README.md$ git statusOn branch masterChanges to be committed: (use "git reset HEAD <file>..." to unstage)
deleted: README.md
$ git mv README.md README$ git statusOn branch masterChanges to be committed: (use "git reset HEAD <file>..." to unstage)
renamed: README.md -> README
● 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
Renaming & Remove Remotes
git remote rename <remote-name> <remote-newname>
git remote rm <remote-name>
Top Related