安裝
至Git官網下載
安裝過程關於default editor的部分,選VS Code
調整初始branch name為main(配合新的Github default branch name)
除了上面這兩個步驟外,其餘的一直按next即可
安裝完成後,可至terminal查看git當前版本確認是否安裝成功
git --version
帳號設定
第一次設定及後續變更新的使用者資料都是如下
git config --global user.name "Eide Wang" git config --global user.email "eidewang@gmail.com"
若是要設定區域使用者的話,將上面的'--global'替換為'--local'
設定完成後,若要查看當前使用者資訊
git config user.name git config user.email
初始化
VS Code terminal 先cd至Vue專案資料夾
git init
執行完畢後,會在專案資料夾下創建一個.git repo
關於.gitignore
執行完git init
後,可在資料夾內看到一個.gitignore被生成(若沒有的話就必須自己添加)
可用來設定哪些檔案/資料夾應該被Git忽略
預設的打開來內容大概如下(視專案不同而不同)
.DS_Store node_modules /dist # local env files .env.local .env.*.local # Log files npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* # Editor directories and files .idea .vscode *.suo *.ntvs* *.njsproj *.sln *.sw?
添加檔案至Staging Area
在說明add、commit前,先看一下官方文件之git檔案狀態生命週期
在執行初始化後,會進入Untracked階段,設定好哪些檔案不需要被git track後(in .gitignore)
一次添加全部Untracked files
git add .
一次添加一個Untracked file
git add FILE_NAME
FILE_NAME的部分注意需要使用路徑的方式來添加,例如
git add src/components/ui/BaseButton.vue
VS code檔案區很方便,可看當前檔案狀態
灰色的node_modules是被寫進.gitignore的需忽略資料夾
U表示Untracked,A表示Added
查看當前狀態
git status
常見的會看到:
Changes to be committed:
Untracked files:
nothing to commit, working tree clean
Commit Staged Files
添加追蹤檔案、檔案有被修改變更後,需要執行Commit動作
git commit -m "initial version"
""內文字依每次modify的內容可自行調整
修改當前commit message:git commit --amend
非新增或刪除,僅是修改檔案的話,可使用git commit -a,簡化git add這一步
查看紀錄
git log
輸出結果如下,越新的Commit在越上面
commit 7d6684569931bec4c4e674ece9af7287b587c771 (HEAD -> master) Author: Eide <zun620@gmail.com> Date: Sat Nov 28 21:42:30 2020 +0800 initial version
若是要簡化log資訊
git log --oneline //輸出如下 7d66845 (HEAD -> master) initial version
加上--graph
可以作圖看唷!!
查看當前HEAD所在的SHA-1
git rev-parse --short HEAD
檔案無法忽略?!
如果有檔案一開始沒被寫進.gitignore規則內,被tracked後
此時就算再編輯.gitignore加入忽略規則,也無法直接忽略該檔案
解決方法:退追蹤
單一檔案退追蹤
git rm --cached src/components/ui/BaseButton.vue
全部退追蹤,' -r '為給定前導目錄名稱時,允許遞歸刪除。
git rm . -r --cached
退追蹤並不會導致你的本機檔案被刪掉!
會真的刪掉檔案的指令
如果要"整理"repo,將沒被追蹤且又不在.gitignore規則的檔案刪除
可用git clean來處理
git clean -n //模擬告訴你會有哪些檔案被刪,還不會真刪 git clean -f //刪掉當前目錄下除了被.gitignore忽略以外的未追蹤檔案 git clean -f <path> //刪除指定路徑下除了被.gitignore忽略以外的未追蹤檔案 git clean -df //未指定路徑下,git clean不會遞歸到未跟踪的目錄中,避免刪除過多的目錄 //加了d的話,在尋找那些未追蹤檔案應被刪除時,會遞迴進入目錄內,目錄未追蹤的話會一併刪除 git clean -xf //無視.gitignore,刪除所有未追蹤檔案,最好別用這個!!
--待續--