2011年6月30日 星期四

git working model for a FAE like me

這篇文章給我很多啟發

新的工作跟過去不同
沒有perforce來輔助我version control的事
一切變得一團亂

常常客戶拿到我們放出來的一包codes會遇到一些問題
釐清的過程中
可能會稍微修改A
但同時間 可能我還要對同一包codes處理別的客戶的case
為了另外一個客戶我可能會修改B
但是我又不想在修改B的時候有A的部分在裡面
導致一些副作用之類的

此時就很適用對一包codes
根據不同的case建立不同的branch
然後在那個branch上commit自己做的修改
如下範例發生在有.git的目錄下

git checkout -b NEW_branch OLD_branch
由OLD_branch產生一個NEW_branch
以我的需要這樣的OLD_branch通常會是一版official release
git checkout NEW_branch
跳至NEW_branch 就可以開始解bug了!!!!!

git commit FILES -m "DESCRIPTION"
在NEW_branch 暫時commit一些檔案 但可能沒完全完成

此時突然有了另外一個case插進來
就可以從OLD_branch再開一個branch來解新的case

git checkout -b NEW_branch2 OLD_branch
當然要從OLD_branch分出來才能不受干擾地使用乾淨的codes
git checkout NEW_branch2
一樣要先換branch才能做事情 (這行指令會一併把你的codes換成NEW_branch2的狀態)
git commit FILES -m "DESCRIPTION"
Commit some files in NEW_branch2

大概就是這樣啦
用git就不要吝於branch out^^

最後摘出其他常用指令

git branch
觀看目前有哪些branches
git log
看歷史紀錄 得從這個拿到manifest 進而作difference.
git show
看某一版做了些甚麼
git diff
比較版本