Git基本操作(1)

Git

安裝

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,刪除所有未追蹤檔案,最好別用這個!!


--待續--


© 2021 Hamsterism. All rights reserved github