Git 觀念篇
Git是什麼?
Git是一個版本控制的工具。
你可以把它理解成一個神奇的魔法畫板。
它會幫你記錄畫板上的每一個步驟,當你的步驟畫錯時,只需要告訴它一聲,它就會幫你自動還原到指定的步驟。
更厲害的是,你可以跟多個朋友一起合作畫畫,每個人畫一個部分(頭,身體,左手,右手),最後再把每個區塊整合在一起。
Git 和 Github 有什麼不同?
Git 是版本控制的工具
Github 是有支援Git服務的雲端空間。
換句話說,Git是管理你的畫作步驟的魔法畫板
Github 是幫你把這些步驟全部儲存在雲端(類似Google Drive)的地方。
除了 Github之外,比較有名的Git雲端空間是Gitlab, BitBucket, 和 Gitee。
Git 可視化工具是什麼?
Git 可視化工具是好看的Git介面軟體。
透過介面UI點擊按鈕,直覺的使用Git功能。
Git 下載安裝之後是純指令(CLI),
沒有介面的工具,對新手不太友好。
因此出現許多了Git視覺化的介面工具

其中最有名的是SourceTree, GitKraken, 和 Github 推出的 Github Desktop.
我最推薦使用的是GitKraken
雖然要付費,但是介面設計直覺又好看!
更新速度很快,工作起來會很爽,強烈推薦沒辦法接受醜醜介面的你。
如果你不想花錢
那麼最多人用的就是Source Tree,是開源免費的軟體,上手之後就很直覺。
不需要再去煩惱別的工具了,不直覺不好用。
最簡單的GitFlow流程

上面這張圖是最簡單的Git操作流程:
- 使用Git Clone把專案下載到電腦
- 對專案進行一番修改
- 使用Git Push把修改的專案推上雲端
- 使用Git Pull下載最新的專案下來繼續修改
- 重複第三步
Git的文件夾資料結構:
Git資料夾被默認隱藏起來了。
MacOS : (快捷鍵) Command + Shift + .
Window:透過Menu打開

打開後會看到一個隱藏的 .git 文件夾

有顯示這個代表這個專案有被Git管控,可以安心亂改!(誤
Gitignore是什麼?

Gitignore 是用來告訴Git不要紀錄什麼的文件。
有時候有很多資源是不要把步驟全部紀錄下來的,像是很大型的文件(模型,影片,圖片)。
這時候就要用 .gitignore 來定義什麼不要紀錄
這個文件不會自己生成
你需要右鍵新增一個文本,然後自己命名 .gitignore
.gitignore 使用方式:
# 這是個註解
#這是不要加進版本控制的目錄
/Library/
/Packages/
.vscode/
# 這是不要加進版本控制的後綴文件, *代表任意文件名
*.csproj
*.sln
*.tmp
*.apk
# 這是一個複雜的寫法
!/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
如果你有更複雜的需求,這個是官方的文檔說明文件
多人協助的 Git Flow

如果有兩個人以上進行開發的話:
- A和B同時下載專案到本地電腦
- 然後新開一個自己的分支(Branch)
- 各自修改專案,然後推到自己的分支(Branch)
- 推倒主要的分支上
- 進行兩個分支的合併整合
- 整合完衝突之後,重複步驟3
Git 常用指令大全
指令 | 解釋 |
git clone <url> | 把Gitlab/Github上的專案下載到本地電腦 |
git add . | 把所有修改的檔案新增到版本控制裡 |
git commit -m <message> | 紀錄這次的修改改了什麼東西 |
git push <origin> | 把本地電腦的版本更新到Github/Gitlab上 |
git pull | 把Github/Gitlab上的專案下載下來並且合併到當前的Branch |
git fetch -a | 把Github/Gitlab上的專案下載下來但不合併Branch |
git branch | 查看,新增,刪除 分支Branch的指令 |
git checkout <branch> | 切換分支Branch的指令 |
上面這些是比較常用到的指令,完整的指令可以查看這裡
Git LFS 是什麼?
Git LFS(Large File Storage)使用來存放超級大檔案的地方。
在 Git 版本控制裡只會保留一個指向大文件的小文件。
當你需要這個大文件時,Git LFS 會自動幫你下載。