不可不知的版本控制系統Git No.1-本地數據庫中Git可以做到的事情?(上)
Git的簡介
在大多數的情況下,工作時會不斷地更新自己的資料,可能從index1 0824.html→index1 0831.html→index1 0905.html等等,不會刪除舊檔案,以便之後有問題可以去查看,但當更新10次、20次時,並不會記得每次更新都更新了甚麼內容,Git就是來解決這種問題的,透過Git來做版本控制,知道每次更新的內容,誰在甚麼時間去做了修改。
安裝Git
安裝後,找到並開啟 git Bash,就會有一個類似命令提示字元的視窗如下:
Git操作流程
Git本地數據庫
在操作Git的過程中,會發現檔案上傳到遠端數據庫(通常是GitHub),是需要經過幾個檔案儲存區域,才能成功上傳,下面利用六角學院流程圖加上我自己的理解來解釋,每個區域的工作是什麼。
 
上傳到遠端數據庫前的指令碼
- 確認安裝的Git版本 - 1 
 2- $ git version (直接按Enter) 
 git version 2.24.0.windows.2 (Git Bash顯示的Git版本)
- 創建本地數據庫前的基本指令碼介紹 - cd 檔案路徑 →前往該檔案
- mkdir 資料夾名稱 →創建資料夾
- touch 檔案名稱 →創建檔案
- clear 清空目前所有指令碼及回饋紀錄
 - 更多基本指令碼參考: 
 高見龍-Git 教學:終端機及常用指令介紹
 Zed Shaw-Command Line Crash Course
初始化
- 設定使用者的 Email 信箱以及使用者名稱 - 1 
 2- $ git config --global user.name "Celeste" 
 $ git config --global user.email "celeste@email.com"- 查詢使用者的 Email 信箱以及使用者名稱建立明細1 git config --list  
 
- 查詢使用者的 Email 信箱以及使用者名稱建立明細
- 初始化資料夾,建立Git環境 - 1 - $ git init 
工作目錄區
- 工作目錄區(Working directory)的檔案,尚未上傳到索引區(Staging Area)內,下面有圖示↓ - 查詢檔案狀態1 $ git status 
- 建立檔案 index.html1 $ touch index.html 
- 建立檔案後,查詢狀態會顯示1 $ git status Untracked files:...
- 建立資料夾 css/,並在資料夾裡創建檔案比較創建空資料夾1 
 2
 3mkdir css 
 cd css
 touch all.css1 
 2mkdir js 
 cd js
- 創建資料夾後查詢狀態Untracked files裡只會顯示index.html跟css/,而空資料夾js/不會被追蹤。
 
- 查詢檔案狀態
- 工作目錄區(Working directory)的檔案,上傳到索引區(Staging Area)內,下面有圖示↓ - 將檔案從工作目錄區(Working directory)上傳到索引區(Staging Area) - 全部上傳 - 1 - $ git add . 
- 部分檔案上傳 - 1 - $ git add index.html 
- $ git add後,查詢狀態- 1 - $ git status - 會顯示 - Changes to be committed:...
 
- 檔案資料新增、修改後(尚未再次上傳到索引區),想要回復到未修改前(上次上傳到索引區的檔案內容)的狀態 
 這個檔案之前一定要有過上傳到索引區,並且回復的檔案內容也是上次上傳到索引區的內容。- 部分還原 - 1 - $ git checkout index.html - 或是 - 1 - $ git restore css/all.css 
- 全部還原 - 1 - $ git checkout . - 或是 - 1 - $ git restore . 
 - 其實在提交到索引區之後,再去修改檔案內容,再透過 - $ git status查詢狀態後,會發現Git Bash會出現提示- use "git restore <file>..." to discard changes in working directory,讓使用者知道可以使用- $ git restore來刪除工作檔案中有更變動的地方。
 
索引區
- 索引區(Staging Area)的檔案,上傳到本地數據庫(Local Repository),下面有圖示↓ - 上傳1 $ git commit -m'註解' 
- 查詢commit紀錄1 $ git log 
 - (在有了一次commit紀錄之後)在工作目錄區修改檔案並且上傳(git add)到索引區後,發現上傳檔案內容有誤,想要回復到未上傳到索引區的狀態。 - 取消上傳到索引區或是1 $ git reset HEAD index.html 1 $ git restore --staged css/all.css 
 - 特別注意, - $ git reset HEAD及- $ git restore --staged都只是將檔案回復到未上傳的狀態,並非回復到修改前的狀態,如果要回復到上一次(未修改前)的檔案狀態要再使用- $ git checkout或是- $ git restore。
- 取消上傳到索引區
 
- 上傳
在Git不需要被追蹤的檔案
有些比較機密或者是編譯過程中產生的暫存檔之類的,其實是不需要進入版控(Git)的,哪些資料不需要進入版控的可以參考gitignore,裡面有許多不需要進入版控檔案的建議。
如何創造出不進入版控的檔案
| 1 | $ touch .gitignore | 
在編輯器上編輯這個.gitignore的檔案,將不需要進入版控的檔案放進去裡面。
| 1 | *.html |