分散式的版本控管系統
使用過中央控管的版控: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]
- 建立目錄
e.g /git/repo & cd /git/repo
z:\git\repo - git init --bare myproject.git
- 此時會建立 myproject.git 目錄
- 後續連結遠端儲存庫時便可使用該repository
e.g git remote add myproejct z:\git\repo\myproject.git - 當然 此目錄除了可建立在本機檔案系統外, 也可建立在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/