星期六, 10月 08, 2011

git 常見問題

  1. 程式改爛了,怎麼還原
    • 還原單一檔案
      $ git checkout hello.txt
      
    • 整個還原到最後commit版本
      $ git reset --hard HEAD
      
      只會還原上一版本有加入track的檔,還沒加入的新檔不會變更
  2. 回復特定版本
    雖說是回覆,但其實是將指定的版本新增為最新的commit
    $ git revert commit_name
  3. checkout某版本或分支的特定檔
    git checkout SHA-1 --  FILE_PATH
    git checkout BRANCH_NAME -- FILE_PATH
  4. 衝突了!怎麼解
    打開confilct的檔案
    <<<<<<<<     HEAD
    目前的版本
    ---------------------
    上一個版本
    >>>>>>>>>> 版本碼
    只要看哪個正確,改正就可以了
    
  5. 要切換branch,還不想commit
    1. 先丟到暫存區
      $ git stash
      
      這時會回到最後commit的結果
      不過未經commit的新檔不會改變,也不會被刪除
    2. 取回暫存
      $ git stash pop
      
  6. 圖示commit版本
    • $ git log --graph
    • commit後,想修改message
      $ git commit --amend
      
  7. 新增remote
    • 查目前所有的remote點
      $ git remote -v
    • 新增remote點
      $ git remote add remote別名 repository的url位置
    • 移除remote點
      $ git remote rm remote名

  8. push回origin權限不足
    通常創repository跟clone下來的帳號不同
    造成要push回去時,會有權限不足的問題
    可利用group的解決這問題
    sudo chmod -R g+ws *
    sudo chgrp -R YOUR_GROUP *
    
    git config core.sharedRepository true

沒有留言: