Git 是一個最基本專案版控的方法, 只需使用幾個指令就有效的保護我們的專案避免不可復原的災難(也能追查製造災難的兇手)。
除此之外, 我們還能將專案保存在網絡上的保存庫外以達到更高彈性與協作。
以下內容將會簡單介紹常用到的指令並且是以 Console 進行執行, 不會依賴工具執行專案的版控管理。
概述
Git 是一個最基本專案版控的方法, 只需使用幾個指令就有效的保護我們的專案避免不可復原的災難(也能追查製造災難的兇手)。
除此之外, 我們還能將專案保存在網絡上的 Repository 外, 並且專案也能達到更高彈性與協作。
以下內容是我日常使用的指令, 我將會簡單介紹常用到的指令並且是以 Console 進行執行, 不會依賴工具執行專案的版控管理。
內容
基本操作
Git Console 是 Git 最簡單進行專案版控的方法, 並且我們在下載安裝後, 即可在本機進行基本使用。只能可能會使用的如下:
Version
安裝 Git 後, 我們需要確認電腦是否有安裝 Git 時, 可以執行以下指令確認目前是否有安裝。
git --version若電腦有完成安裝 Git, 將會顯示 Git 的版本。
Config
列出 Git 資訊內容, 裡面含常用的 User Name 與 User Email 資訊
git config --list調整資訊內容
設定名稱 - git config user.name "名稱"
設定郵件 - git config user.email "郵件"若需要全域就在指令上加上 --global
設定名稱 - git config --global user.name "名稱"
設定郵件 - git config --global user.email "郵件"設定資訊的目的是為了後續 Commit 內容至遠端 Repository 時可知道是由哪位仁兄 Commit 外, 遠端存放的 Repository 也會根據 Email 判斷是否為被允許之電子郵件以達到權限管理。
Init
建好專案後, 我們即可在專案下第一層執行以下指令
git init該指令將會建立有關 Git 版控的相關內容。有些開發軟體或開發語言在預設建立時就會連同 Git 版控一同建立。
這裡有兩個比較特別的衍生物, 一個是 Readme.md,另一個是 .gitignore。 這兩者有時會隨著開發軟體或開發語言一同產出,或者也能自行手動建立。
Readme - 該 Markdown 檔案一般被用來記錄專案資訊。
Gitignore - 忽略某些檔案或內容。 主要執行存放在遠端的 Repository 時, 將會主動忽略設定內容。 依照不同的程式語言或開發工具具有不同的忽略物。
Add
主要是選定需要進行記錄的文件, 但是一般我會直接針對全部檔案進行記錄
針對全部檔案 - git add .
針對單一檔案 - git add readme.md
針對類型檔案 - git add *.txtCommit
主要針對選定之內容進行註記與儲存異動內容
git commit -m "註記內容"Commit 時, 我認為有些人有不好的習慣, 像是無論專案是否可以執行, 想到 Commit 就 Commit, 或者是開發者已完成了大量開發後再執行 Commit。
以上都可能在專案管理上有機會造成負擔, 像是復原時不好選擇復原點, 或者是取得版本是異常的。
故我建議是在可正常運行並可接受的狀況下, 以每次修改的變數或一項 Function 的開發為一個 Commit。
這樣 Commit 資訊好寫外, 在遇到問題時也可以方便選擇版本。
基本協作
我們處理本機進行版控外, 我們可能因為團隊開發, 而需要進行協作。
以下將是協助時, 我們將會用到的基本指令。
Clone
取得遠端 Repository 之專案
簡單 - git clone 遠端路徑
改名 - git clone 遠端路徑 "新名稱"Pull
取得遠端 Repository 專案之新資料
git pull若本機 Repository Commit 與遠端 Repository Commit 同一個位置具有不一樣的內容將會造成衝突。
該狀況除了注意分工外,與是否習慣 Push 與 Pull 有關。
Push
將本機的 Commit 推送至遠端的 Repository 上
git push "本機 Repository Branch" "遠端 Repository Branch"若在本機 Push 至遠端前, 遠端 Repository 已新增新的 Commit 將會造成錯誤, 故建議 Push 前先執行 Pull 更新目前本機的專案內容。
進階協作
除了預設使用 main (遠端常用 master)外, 在協作上我們還可以利用 Branch 與 Merge 進行管理開發以達到良好的開發專案管理。
比方說 Main 僅提供佈板所需的版本, 其他可以開發功能可是以獨立的支線記性存放 Commit。 若開發功能開發完成後, 再進行將開發好的版本合併至主線即可。
這樣將會降低開發時造成專案損壞的狀況。
Branch
主要是進行 Branch 管理,如顯示, 建立,更名或刪除等。
顯示支線 - git branch
建立支線 - git branch 名稱
更換名稱 - git branch -m 舊名稱 新名稱
刪除支線 - git branch -d 名稱Branch 之間不會互相影響, 如 A Branch Commit 後, 內容不會出現在 B Branch 內, 故可以很好管理開發版本
Checkout
確認 Branch 名稱後, 可以依賴 Checkout 進行更換路線
git checkout 名稱Merge
兩個 Branch 可能是不同的開發功能, 若開發完成後我們可以使用 merge 將兩個 Branch 進行合併。
git merge "將被合併的 Branch Name"執行 Merge 需要留意的是:若需合併的 Branch 已有修改, 但被合併的 Branch 卻不是以最新內容, 這將會造成衝突, 故需要小心。
以上是我經常使用的 Git Console。 當然除了開發專案外,其實我們也能運用在文件管理上。
參考
- Git 文件 - https://git-scm.com/docs
 - 學習資料 - https://backlog.com/git-tutorial/tw/
 - Gitignore - https://github.com/github/gitignore