Friday, August 7, 2015

Partial commit

Antara kesilapan yang sering dilakukan - commit bercampur-campur. Commit untuk fix isu berkaitan variable lupa nak initialize bercampur dengan commit tambah logging. Ini biasa berlaku apabila kita sedang tambah code berkaitan logging, tiba-tiba kena fix isu pasal uninitialized variable. Commit yang bagus perlu bersifat atomic dan reflect changes yang kita nak buat. Ini dipanggil changset.

Untuk elakkan commit bercampur ini, boleh gunakan partial commit:-
> git add -p
diff --git a/main.py b/main.py
index 25fbafc..260c43d 100644
--- a/main.py
+++ b/main.py
@@ -35,7 +35,7 @@ def get(param):
         return out
     return out[:length]

-def main(token):
+def main(token, user=None):
     bot = telegram.Bot(token)  # Telegram Bot Authorization Token

     global LAST_UPDATE_ID
Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]?
Di atas git memberikan kita option sama ada untuk add changes tersebut ke index, atau skip ke changes seterusnya.

Push to multiple remote

Ramai yang menggunakan Github untuk host repo git mereka. Namun masih ada perkhidmatan hosting git yang lain seperti Gitlab atau BitBucket. Bagaimana kalau kita dapat push code kita ke semua hosting ini serentak ?

Boleh gunakan multiple remote:-

git remote set-url --add --push origin https://github.com/k4ml/wgetbot.git
git remote set-url --add --push origin https://gitlab.com/k4ml/wgetbot.git
git remote -v
origin https://github.com/k4ml/wgetbot.git (fetch)
origin https://gitlab.com/k4ml/wgetbot.git (push)
origin https://github.com/k4ml/wgetbot.git (push)

> git push origin master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 363 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To https://gitlab.com/k4ml/wgetbot.git
   e23b4c0..2640546  master -> master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 363 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To https://github.com/k4ml/wgetbot.git
   e23b4c0..2640546  master -> master

Wednesday, August 5, 2015

Lihat perubahan (diff) pada index (staging area)

Biasanya kita akan menggunakan command git diff untuk melihat perubahan yang telah kita lakukan terhadap sesuatu fail. Namun apabila kita telah memasukkan fail tersebut ke index/staging area, git diff tidak akan menunjukkan apa-apa perubahan lagi. Gunakan arahan berikut:-
git diff --staged
Atau:-
git diff --cached