2012年9月21日 星期五

簡易的git操作使用

git功能相當多,這裡只列出最基礎使用部份
一.環境安裝
  1. window
    到以下網址下載安裝
    http://code.google.com/p/msysgit/downloads/list?q=net+installer
    http://git-scm.com/downloads
  2. ubuntu
    sudo apt-get install git
    
二.名詞說明
  1. repostory
    有版本控制功能的目錄
  2. local remote
    local是自己的repos,主軸為master,若有分支,就會有相關branch名稱
    remote是遠端的repos,通常在多人同時維護一份程式碼的狀況
    每個人都會有一個local的repos,大家都會對應到同一個remote做
    大家的版本共同管理,預設的remote名稱是origin
  3. stage ,unstage
    把檔案加入到stage,就是讓這些檔案會在版本控制的範圍內
  4. push,pull
    pull是由remote將檔案拉下來到local上
    push是將local檔案放到remote上
  5. commit,checkout
    做commit的動作就是產生一個新的檔案版本
    checkout就是切換到指定的版本或是分支

三.本機檔案版本控制
  1. 目錄初始化
    會產生一個.git目錄,讓該目錄成為一個repostory
    在目錄下執行
    git init
    
  2. 查看目前repostory的狀態
    檔案是否有更動,是否有檔案被加到stage,是否尚未commit
    等相關狀態都可以使用這指令看到
    git status
    
  3. 查看已儲存的版本(comit)清單
    git log
    
  4. 加檔案到stage
    加入指定檔案
    git add filename
    
    全部有異動的都加入
    git add .
    
  5. 刪除檔案
    git rm filename
    
    刪除目錄
    git rm -rf dirname
    
  6. 將已經加入stage的檔案移到unstage
    git reset HEAD filename
    
  7. 產生版本
    git commit -m "xxx"
    
  8. 回復到指定版本
    git reset -hard HEAD~1
    
    數字代表回復到前幾個版本
四.與遠端Remote做版本控制
  1. 將遠端的repos複製到local
    執行指令後,會將remote的目錄,複製到目前這個目錄下
    git clone 遠端目錄
    
  2. 設定要同步的遠端remote
    local respos 加入remote後,就可以把資料放到remote上,
    或是由remote 下載回來
    git remote add  aliasName remote路徑
    
  3. 查看目前所有的remote
    local respo上可以同時設定多個remote
    git remote -v 
  4. 由remote上取回最新檔案
    git pull origin master
    
  5. 將local檔案上傳到remote
    git push origin maste
    
五.修改檔案後更新流程
當你已經修改了檔案要放到remote上,也許remote上的檔案,在這過程中已經被別人更新做
以下流程處理
  1. 先把自己的修改內容放到暫存區
    git stash
    
  2. 由remote取回最新檔案
    git pull origin master
    
  3. 合併
    git stash apply
    
    把自己放在暫存區已改過的檔案與最新拉回來的檔案merge在一起,
    若有衝突的地方,系統會自動在差異處加入註解,
    修改好再儲存
  4. 重新把檔案加入到stage
    git add .
    
  5. 產生版本
    git commit -m xxxx
    
  6. 傳回remote上
    git push origin master

六.使用Github當作remote
  1. 選擇連線方式
    在你要clone的repos上可以看到有提供ssh或是http連線方式
    提供不同的連結網址,使用http連線,每次會要求輸入連線帳號密碼
    (就是github帳號密碼)
    若使用ssh則可直接連線,但須先設定ssh key
  2. 設定ssh key
    參考https://help.github.com/articles/generating-ssh-keys
    產生ssh key並貼到github個人資料頁內,即可使用ssh直接連線
七.使用Dropbox當remote
在指定的dropbox目錄上執行
git init --bare
該目錄即可成為一個git remote

沒有留言: