# Git使用教學 <i class="fa fa-code-fork" aria-hidden="true"></i> ###### tags: `33th學術`, `教材設計` --- [TOC] ## 什麼是 Git?<i class="fa fa-github-alt"></i> 檔案會因為不同的時間的變化有所不同,假如一開始有一個test目錄裡只有1個檔案,過兩天增加到5個。不久之後,有修改文件,過了三個月後又增加到7個,最後又刪掉了1個…不斷的變更目錄底下的資料,這現象不管是新增或刪除檔案,亦或是修改檔案內容,都稱之為一個「版本」,所以不斷地更換版本方式,而需要有一個方式做「管理」,而就有的「版本控制系統」,就是指會幫你記錄這些所有的狀態變化,並且可以像搭乘時光機一樣,隨時切換到過去某個「版本」時候的狀態。 簡單的說,Git 就像玩遊戲的時候可以儲存進度一樣。舉例來說,為了避免打頭目打輸了而損失裝備,又或是打倒頭目卻沒有掉落期望的珍貴裝備,你也許在每次要去打頭目之前之前記錄一下,在發生狀況的時候可以載入舊進度,再來挑戰一次。 :::info 延伸的使用:GitHub, GitLab [我之前寫比賽時有用](https://hackmd.io/7y5fHwz0SviAkRj_22zccQ) ::: ## 安裝方式: ![](https://i.imgur.com/mr1qNSp.png) ### Linux <i class="fa fa-linux" aria-hidden="true"></i>/ Mac OSX <i class="fa fa-apple" aria-hidden="true"></i> 安裝好之後,就可以立即在終端機使用 直接在 Terminal 終端機當中輸入 `git --help` 取得常見指令用法 ### Windows <i class="fa fa-windows" aria-hidden="true"></i> Git Bash = MinGW + Git MinGW 讓我們可以在 Windows 的環境下,使用與 UNIX-like 的方式下指令 cd, ls, vim, curl, ... ![](https://i.imgur.com/ce4N8LS.png) ## 配置 ### 設定 Username, E-Mail 初次使用 git,最重要的就是設定 username 以及 email ```bash= $ git config --global user.name "your_name" $ git config --global user.email "your_email@example.com" ``` 第一次使用可以先隨意設定,但是之後若要搭配 GitHub 的服務時,就必須使用在 註冊時所使用的 `username`, `email` > 使用 --global 的參數,表示對於所有的 git repo 都會採用這組預設值 接著,我們可以透過 `git config -l` 的指令,來查看我們目前 git 的設定內容 ```bash= $ git config -l ``` > 參數-l 為--list,等於 > `$ git config --list` > detail [git config](https://www.atlassian.com/git/tutorials/setting-up-a-repository/git-config) photo 而所有 git config --global 的設定內容,都會被寫入`~/.gitconfig` photo ### 預設開啟彩色 ```bash= $ git config --global color.ui true ``` ### 預設編輯器 vim ```bash= $ git config --global core.editor vim ``` ## Github <i class="fa fa-github"></i> ### 建立 GitHub 帳號 GitHub 是個 Git repository 的托管網站,可讓開發者將自己的專案儲存到網路上,與全世界分享,我們可搭配 Git 在本機進行專案管理並發佈於 GitHub。 GitHub 同時提供付費帳號和針對開放原始碼程式的免費服務。根據 2009 年的 Git 使用者調查,GitHub 是最熱門的 Git 分享網站。它提供了如 feeds, followers 和顯示開發者們如何在他們版本庫上的版本工作的圖表。 GitHub 也提供類似剪貼簿的功能,issue tracker 和網頁使用 Wiki,通過一個 git repository 即可對這些頁面進行編輯。 ![](https://i.imgur.com/KVRP0FF.png) ### 建立新 repository 在和本機的 repository 連動之前,先給自己的專案取個名字吧,這會是你專案之後的名字,也會是其他人搜尋你專案的時候的關鍵字,好的專案一定有個好名稱。 photo ### SSH key 產生的方法 `ssh-keygen` ## Gitlab <i class="fa fa-gitlab"></i> ![](https://i.imgur.com/0GKIrw2.png) [連猴子都懂的git入門指南](https://backlog.com/git-tutorial/tw/)