2012年8月17日 星期五

如何增進工程師效率–Revision Control With Git

Revision control (RC, 版本控制) 有沒有用或是否重要,要吃過苦頭才知道。當你修改一些設計犯了錯想要回頭,或是要做一些 optimization 的實驗。如果有好的 revision control, 就像有一幅地圖,可以清楚而且有效率的 navigate 如何前進或後退。

有時和工程師談到 revision control, 得到的反應是用不到或是真的需要學一個新的 tool 嗎?  其實他們有一套私有的 revision control, 例如 copy 到不同的 file 或 directory,  用日期或 v1, v2..  來做版本控制。私有的問題是 (i) 簡單但容易有人為的錯誤;(ii) 很難和別人 share 和溝通。多半是單幹戶的方法。

雖然已經有許多的 revision control tool, 我發現 git 是最適合我 (as a designer) 時 revision control.  原因是:linux built-in revision control tool (事實上 linux 本身也是用 git 做 revision control);  可以簡單到單幹戶都可以自己取代私有的 revision control ; 但也非常適合一個 team project 的 revision control.

 

Git 三招走江湖

image

Git 的操作參考上圖。比起其他的 RC tool, 除了一樣的 working directory 和 repository 外,多了一個 staging area.

第一招:Create First Revision

Only 3 command

  • git init
  • git add .
  • git commit –m “init version”

Before start, first setup

  • .gitconfig in your root directory
  • .gitignore in your project directory

 

第二招:Check-in New/Modified Files/Directories

Add new files

  • git add <file/.>    -->  from working area to staging area
  • git commit –m “check-in message”   -->  from staging to repository

Modified files

Method 1: same as above

Method 2:

  • git commit –am “check-in message”  --> from working area to staging area and repository

git ci -am 不包括 new files

git add or git commit –m  only apply to 本目錄及其下所有子目錄

Always use “git status” to check

 

第三招:Checkout Repository

回復原狀 (repository to staging area and working area)

  • git checkout -- .

Staged, but not commit

  • git reset <file>   -->  staging area to working area

要撤消 Commit, 但維持 working directory

  • git reset --soft HEAD~1  -->repository to staging area

 

    沒有留言:

    張貼留言

    追蹤者