---
title: Git(簡介+安裝)
tags: 暑假
---
Git(簡介+安裝)
===
## 什麼是Git?
Git 是一種分散式版本的版本控制系統(Version Control System)。
### 「版本控制系統」
就是指會幫你記錄這些所有的狀態變化,並且可以像搭乘時光機一樣,隨時切換到過去某個「版本」時候的狀態。
例如你今天玩遊戲時候可以儲存遊戲一樣,舉例,為了避免打boss打輸了而損失裝備,又或是打倒boss卻沒有掉落期望的珍貴裝備,你也許在每次要去打頭目之前之前記錄一下,在發生狀況的時候可以載入舊進度,再來挑戰一次。
>簡言:就是你做了什麼動作,都會幫你記錄下來,讓你也可以防止檔案錯誤無法還原的問題
### 「分散式系統」
即使在沒有伺服器或是沒有網路的環境,依舊可以使用 Git 來進行版控,待伺服器恢復正常運作或是在有網路的環境後再進行同步,不會受影響。而且,事實上在使用 Git 的過程中,大多的 Git 操作也都是在自己電腦本機就可以完成。
>簡言:就是也可以離線使用在自己本機上
## Git優點
- #### 同時開發
- 在自己的分支上同時運作。
- #### 免費、開源
- #### Git 與任何小組合作
- 小組可以解決版本控制、工作專案追蹤,以及持續整合和部署的個別工具。 或者,他們可以選擇一個解決方案
例如 GitHub 或 Azure DevOps 、GitLab,可支援所有這些工作
提取要求(讓開發人員可以流覽檔案變更、留下批註、檢查認可、檢視組建,以及投票核准程式碼)以及分支原則(防止直接推送、要求檢閱者,並確保全新組建,以保護重要的分支),可以讓整個專案受到保護以及確認。
## Git的成員
- #### Git:是一種版本控制系統,是一個命令,是一種工具。
- #### Git LFS 是 大檔案儲存(LFS)用Git中的文字指標替換音訊樣本、視訊、資料集和圖形等大檔案,同時將檔案內容儲存在遠端伺服器上,如此分開後,能加速存取的速度。
- #### Gitlib:是用於實現Git功能的開發庫。
- #### Github:是一個基於Git實現的線上程式碼託管倉庫,包含一個網站介面,向網際網路開放。
- #### GitLab:是一個基於Git實現的線上程式碼倉庫託管軟體,你可以用gitlab自己搭建一個類似於Github一樣的系統,一般用於在企業、學校等內部網路搭建git私服。
## 安裝 windows
其他平台下載方式:https://reurl.cc/2mQLEm
下載Git網址: https://git-scm.com/download/win

安裝可以按Next> 到最後

安裝完成之後,請找到「Git Bash」這個應用程式

進入後它本身模擬了一個在 Linux 的世界還滿有知名度的軟體(其實不能算是一般的應用軟體)叫做 Bash

輸入指令確認有無安裝完成
```
$ git --version
git version 2.37.3.windows.1
$ which git
/mingw64/bin/git
```

---
#### [下一篇Git(Gitlab簡介+常用指令)](https://hackmd.io/ISM9If6gRV-faijV4y2HtQ)
----
### 額外基本知識
#### Git GUI,Git Bash,Git CMD之間的區別
**Git CMD**就像常規Windows命令提示符中的git命令一樣。它使您可以通過命令列使用所有Git功能。如果您已經熟悉Windows cmd並且僅在Windows上工作,則很有用。
**Git Bash**在Windows上模擬bash環境。它使您可以在命令列中使用所有git功能以及standard unix commands的大部分功能。如果您習慣使用Linux並希望保持相同的習慣,則很有用。
**Git GU**I是 G 粗體 U ser I 介面(interface),讓您無需觸控命令列即可使用Git。它是其他Git客戶端中的替代產品。由於Git GUI非常小,如果GUI感興趣,您也可以檢視other alternatives。
* **建議**
在切換到圖形介面之前通過命令列學習Git。如果不知道在Git Bash和Git CMD之間選擇哪個,我會選擇Git Bash,因為bash是一個非常有用的學習工具。
>總之學指令方式比較通用=)
----
### 學習參考網頁
:::info
[為你自己學Git](https://gitbook.tw/chapters/environment/gui-tools)
[Microsoft(什麼是 Git?)](https://docs.microsoft.com/zh-tw/devops/develop/git/what-is-git)
[常用Git指令介紹](https://hellojs-tw.github.io/git-101/cheat-sheet.html)
[gitlab介紹與兩種使用方式](https://www.796t.com/article.php?id=479959)
:::