將 Git 變成不可或缺的夥伴
在開發者愈來愈多的時代,Git 變成一個標配的技術工具,以前的我覺得 Git 是一個容易學的工具,雖然表面上是這樣,但是實際上並不是,因為以前使用圖形化介面的 Git 工具做版本控制,但會使用圖形化介面,不代表就會使用指令做 Git,但說這我們開始來介紹使用 Git 。
※ Git 不等於 GitHub
※ Git 不等於 GitHub
※ Git 不等於 GitHub
很重要所以講三次。
為什麼要版本控制工具?
在我們做任何專案或是報告,一定會分好幾個版本,以報告為例,當你在做初版的文件時將某一段文字刪除,但是到了後面的版本,需要找到以前的那段文字,就需要做到版本控管。
當程式專案的開發者,可能會有多個,但也有可能只有一個,但不管是幾個,版本控制也相對的重要,畢竟在回顧之前寫的程式,會比較方便尋找及回復。
版本控制分成三種
我們這章節最主要講的是 Git ,所以我在分散式標了粗體。
- 本地端版本控制 Local Version Control (LVC)
- 集中式版本控制 Centralized Version Control (CVC)
- 分散式版本控制 Distributed Version Control (DVC)
參考資料:
版本控管VCS-基礎概念,SVN、GIT比較
從集中版本控制到分散式版本控制 - 王建興
認識 Git
Git 是一套免費且開源的分散式版本控制的工具。
Git 版本控制的優點
- 協同處理
- 持續性
- 關聯性
- 保留歷史紀錄
有哪些支援 Git 服務的倉庫?
以下為 Git 為核心建立的雲端服務平台。
支援 Git 的 GUI 軟體
支援 Git 的 IDE 編輯器
如何安裝 Git ? Windows 10
至 Git 官網,下載安裝檔(選擇自己系統適合的安裝檔)。
打開安裝檔,之後都下一步
安裝完,按左下角開始 > 找 Git 資料夾 > Git Bash
※ Git Bash 視窗介面是模擬 Linux 終端機,用於 Windows OS系統 模擬 Linux。
輸入指令找尋 Git 的應用程式在哪裡
1 | $ which git |
指令列我們來確認 Git 有安裝是否有安裝成功,如果沒有出現版本號,可參考以下狀況解決作法
1 | $ git --version |
【狀況解決】
本機右鍵 > 內容 > 進階系統設定 > 進階標籤 > 環境變數按鈕 > 選取系統變數 path > 編輯
確認 Git 是否加入到環境變數
如何將檔案透過 Git 到儲存庫(倉庫)
建立工作目錄與儲存庫的初始化
建立資料夾,並進入
1 | $ mkdir LunchOrder |
將工作目錄 建立初始化 Git 儲存庫,簡單說,將資料夾交由 Git 託管
1 | $ git init |
確認是否有 .git
檔案
ls
列出當前目錄下的所有資料夾、檔案(參數:-l
詳細資料, -a
包含隱藏檔案、資料夾)
1 | $ ls -la |
1 | total 4 |
Git初始配置
設定提交後的 作者名稱 及 電子郵件
1 | $ git config --global user.name "black" |
查看檔案狀態
1 | $ git status |
Untracked files
列出 新增或異動(未加入儲存庫)的檔案,檔案皆在 工作目錄 內。
1 | On branch master |
將新增或異動的檔案 加入 暫存區
在工作目錄下,將全部
未加入儲存庫的檔案,送至暫存區,將這批檔案建立索引。
1 | $ git add . |
查看本地端檔案異動狀態
1 | $ git status |
Changes to be committed
代表此批檔案已加入到 暫存區,且編制索引,尚未提交。
1 | On branch master |
將暫存區檔看 提交到 本機儲存庫
將異動程式提交到 本機儲存庫。-m
為 --message
的縮寫。
1 | $ git commit -m "第一次提交程式" |
建立 遠端儲存庫 以GitHub為例
我們將儲存庫命名跟工作目錄名稱一樣,建議 Repository name 跟本機專案名稱是一樣。
README
可以自述儲存庫的內容資訊。 例如:使用說明、專案敘述等。.gitignore
設定哪些檔案、資料夾,不做版本控制。例如:資料庫帳號密碼、IP、範本等。LICENSE
專案授權方式。
暫時不勾選 README
,不選擇 .gitignore
和 License
,以預設為主,本機專案為主,以免造成不必要問題。
建立好儲存庫,將產生的儲存庫 URL 複製起來。
※ 這個 URL 是 本機儲存庫 和 遠端儲存庫 的連結
加入遠端儲存庫
1 | $ git remote add <遠端儲存庫簡稱> <url> |
1 | $ git config --global user.username <你的 github 使用者名稱> |
將本機儲存庫 Push 到遠端儲存庫
第一次 Push
(推送),帶上--set-upstream
,本機儲存庫會追蹤遠端儲存庫的 <remote name> <branch name>
分支。
第二次 要做 Push
(推送),只需要 git push
。
1 | $ git push -u <remote name> <branch name> |
1 | Enumerating objects: 3, done. |
指令大集合
Git詳細指令集
1 | $ git |
初始化儲存庫(註1)
工作區目錄 建立初始化 Git 儲存庫
1 | $ git init |
將工作區目錄建立一個裸儲存庫
1 | $ git init --bare |
參考文件:git init 與 git init –bare 區別
Git 基本資訊設置
設定提交後的 作者名稱 及 電子郵件
1 | $ git config --global user.name "black" |
Git 執行狀態
本地端檔案異動狀態
1 | $ git status |
- 【未追蹤的檔案】 Untracked files:新的檔案,沒有加到 Git 的版本控管裡。
- 【將要提交的檔案】 Changes to be committed:在工作目錄(WD)的檔案執行git add後,會放在暫存區(Stage)。這些放在暫存區的檔案狀態便是等待提交囉!
- 【被更動但尚未要提交的檔案】 Changes not staged for commit:已提交版本後,卻又再次修改,這些檔案會被丟回工作目錄(WD)
- 【已提交】 Committed:在暫存區(Stage)的檔案執行git commit後,檔案便置於儲存區(Repo),這些放在儲存區的檔案即是已提交的狀態。
Git 提交
1 | $ git commit -m "提交說明內容" |
比對檔案差異
比較現在檔案與上次 commit 到本機儲存庫的差異
1 | $ git diff |
標籤: w3HexSchool
Git
原文作者: Sian
原文鏈接: https://dew31794.github.io/2020/10/04/將 Git 變成不可或缺的夥伴/
版權聲明: 轉載請註明出處(必須保留作者署名及鏈接)