星期三, 7月 27, 2011

git

  • 安裝git
    • install git
      $ yum install git-core
      如果發生No package git-core available.
      $rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
    • 環境設定
      git config、git script自動完成
  • git操作
    1. 建立Repository
      兩種方法
      • 以該資料夾當成新的Repository
        $ cd (project-directory)
        $ git init
        $ (add some files)
        $ git add .
        $ git commit -m 'Initial commit'
      • 從遠端複製一份Repository
        git clone http://xxxx
    2. 查看版本
      git log
    3. 暫存
      git stash
    4. 重置及還原
      reset, revert
FAQ

  • commit原則 (from ihover's slide)
    • 適當的粒度/相關性/獨立性
      • 以一個小功能、小改進或一個bug fixed為單位
      • 無相關的修改不在同一個commit
      • 語法錯誤的半成品程式不能commit
  • git push error
    git v1.7後 就不允許覆蓋origin的master
    如果當初始化資料夾下git --bare init時
    沒加上參數--bare 就會發生這個錯誤
    refusing to update checked out branch: refs/heads/master
    如果硬要幹的話....
    git config --bool core.bare true
    這樣就可以push了

    另外較好的解決方法是在local開branch開發,再push到origin的branch後,做merge動作 在要push的branch下 $git push origin HEAD:branch2 #branchX未建會自動建 回到origin,用git branch會看到branch2 $git checkout master #假設是master要merge branch2 $git merge branch2

References

沒有留言: