Sunday, December 23, 2012

364. GIT Part 2

Saya pernah menulis tentang pemasangan GIT pada masukan http://zairochess.blogspot.com/2010/11/305-very-technical-is-subjective.html.

Itu masukan pada 2 tahun lalu. Saya pernah mencadangkan pengunaan GIT pada 3 syarikat yang saya pernah bekerja di mana 1 syarikat memutuskan untuk mengunakan SVN, 1 lagi tidak ambil kisah pun dan 1 lagi mengunakan GIT.

Ada banyak perkara dalam GIT yang perlu kita ketahui sebelum benar-benar dapat mengunakannya dengan efisien.

1. Shortcut
Tanpa shortcut mengunakan terminal:
Add all changes (but NOT new)
$ git diff $ git commit -a -m "bla bla bla"
$ git push

Add new file
$ git diff
$ git add .
$ git commit -m "bla bla bla"
$ git push

Dengan shortcut mengunakan terminal:
Edit bashrc
$ sudo nano .bashrc
Add:
alias gs='git status'
alias gd='git diff'
alias gp='git pull'
alias gl="git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
alias gg='git gui'
alias gca='git add . && git commit -m'
alias gc='git commit -a -m'
alias gh='git push'
alias gmt='git mergetool'
alias ggc='git gc'
alias gb='git branch'
alias gbv='git branch -v'
alias gco='git checkout'
alias gcb='git checkout -b'
alias gm='git merge'
alias gt='git tag -a -m'
alias ght='git push --tags'
alias gde='git describe'

Restart bashrc
$ . ~/.bashrc

Add all changes (but NOT new)
$ gd
$ gc "bla bla bla"
$ gh

Add new file
$ gd
$ gca "bla bla bla"
$ gh

2. .gitignore
Kalau awal-awal sudah masuk folder atau fail yang ingin ignore dalam fail .gitignore tidak ada masalah. Kalau sudah git add, kemudian baru hendak ignore fail tertentu perlu membuat arahan berikut:
$ nano .gitignore application/config/config.php
$ git update-index --assume-unchanged application/config/config.php
$ git rm --cached application/config/config.php

3. Cleaning Up
Compress GIT files Apabila terlalu banyak fail yang telah dihantar ke server akan menjadi perlahan lalu perlu menjalankan arahan berikut untuk compress fail GIT.
$ git gc //gc bermaksud garbage collection

4. Conflict file
Setting:
$ git config --global merge.tool meld

Setiap kali berlaku konflik fail jalankan arahan berikut:
$ git mergetool 
dan kemudian aplikasi meld akan terpapar
klik pada anak panah pada fail yang anda pilih sehingga semua konflik selesai. Kemudian tekan butang simpan.
Seterusnya git commit dan git push.

Cukup dahulu setakat ini untuk maklumat berkaitan GIT. #zairo