[Git] Git 自學筆記 : 基本檔案操作

  • 1260
  • 0
  • Git
  • 2016-11-09

分散式的版本控管系統
使用過中央控管的版控:VSS/CCCQ
轉到Git來 要花點時間把腦袋轉一下
邊學邊筆記
 


   

主要指令: git init
               git add
               git status
               git commit
               git remote 
               git push
               git checkout


1.安裝Git
https://git-scm.com/downloads
2.1 第一次建立此專案時執行初始化:

  •   git init 

            init後會自動產生 .git目錄, 內含相關config 及版本控管紀錄,下指令前先備份此檔, 可還原下指令前狀態
2.2 新增檔案到暫存區: git add .
Working Space(工作區)  ---------->Staging Area (暫存區) ---------->Local Repo/Master
                                          git add                                        commit

 

  • 新增檔案        : git add .
  • 新增單一檔案: git add filename.txt
  • 新增異動檔案: git add -u 
  • 列出異動差異,分批add : git add -p 
    區分不同hunk(異動區塊),逐筆加入staging
  • 列出檔案差異: git diff
  • 取消add : git reset HEAD filename.txt
  • 排除檔案 global 設定 : 
git config --global core.excludesfile ~/.gitignore_global

若是單一專案則在目錄內放.gitignore 即可

2.3 隨時可查閱目前檔案異動狀態:git status
範例:

  • git status

modified: .gitcmd.txt  #此檔案有異動
deleted: test.txt         #此檔案被刪除
untracked file:          #此檔案還沒git add
  addfile.txt

2.4 簽入 

  • git commit -m "first commit"
  • 若想跳過暫存區,直接簽入: git commit -am "add  file + commit file "
  • 修改上次commit的訊息: git commit -amend
  • 取消上次commit,但保留修改檔案: git reset HEAD^ --soft 
  • 改爛了,取消上次commit,還原修改檔案: git reset HEAD^ --hard

3.1 遠端儲存庫(respo )
      查看遠端儲存庫名稱: git remote
      查看遠端與本地儲存庫名稱: git remote -v
     ​ 新增連結遠端儲存庫,本地名稱MyMSMQ: 

  • git remote add MyMSMQ https://github.com/michaelfangtw/MyMSMQ.git

3.2 把本地資源或網路磁碟機當git remote respository使用 [參考3]

  1. 建立目錄
    e.g /git/repo & cd /git/repo 
         z:\git\repo
  2. git  init --bare  myproject.git
  3. 此時會建立  myproject.git 目錄
  4. 後續連結遠端儲存庫時便可使用該repository 
    e.g git remote add  myproejct  z:\git\repo\myproject.git
  5. 當然 此目錄除了可建立在本機檔案系統外, 也可建立在dropbox or 其他網路磁碟機上

3.2 刪除連結遠端儲存庫:

  • git remote remove MyMSMQ https://github.com/michaelfangtw/MyMSMQ.git

3.3 將遠端儲存庫異動,更新到本端:

  • git pull
    pull等同於以下的fetch + merge 
  • git fetch
  • git merge origin/master

3.3 更新到遠端Respo: 

第一次push前須設定追蹤哪個分支(e.g master)

  • git push -u orgin master                          # 第一次需註冊到.git/config
    git push --set-upstream origin master      # 同上
  • git checkout master       # 切到 master (若只有一個branch就不用切了)
  • git push                         #第二次以後就不用帶remote name (e.g origin) 和branch name(e.g master)了

參考:
1.Laradebut #2 版本控制管理與操作 以 git 為例 - Mouson & Duncan
https://www.youtube.com/watch?v=cX9IbYgyeqc&t=5009s

2.Laradebut #3 從 git 入門到團隊合作開發 - Mouson & Duncan
https://www.youtube.com/watch?v=sEloF3SzGI8

3.把本機檔案系統當成remote repository使用
http://www.thehorrors.org.uk/snippets/git-local-filesystem-remotes/