# Github 教學文
---
## 目錄
0. 什麼是 Git,什麼是 Github
- 什麼是 Git
- 什麼是 Github
----
## 目錄
1. 創建 Github 帳號
- 如何新建帳號
- 設定帳號
----
## 目錄
2. 創建專案
- 建立新專案
- 上傳檔案至專案
- 把同伴加進來
----
## 目錄
3. 查看檔案的編輯紀錄
4. 專案內創建新議題
---
## 什麼是 Git 跟 Github
----
### Git?
----
你有遇過以下的情形嗎?
![](https://i.imgur.com/roSwLsM.png)
老闆:這份文件可以幫我改一個地方嗎
----
**過了一個月後**
![](https://i.imgur.com/roSwLsM.png)
老闆:可以改回上次那樣嗎
我:!??? (**不記得上次長怎樣了**)
----
#### 情形 2
![](https://i.imgur.com/qlTrZFe.png)
你:我剛發了一份問卷,請大家填寫完裡面的內容後傳給我喔
----
#### 問題
![](https://i.imgur.com/YcO8sNn.png)
因為大家都寫在各自的檔案,得手動把大家寫的內容整合成一份
#### 如果可以有系統可以自動整合大家寫的內容就好了
----
### GIT 就是為此而存在的
- GIT 能用來記錄文件的**歷史版本**
- GIT 能追蹤每個檔案的**作者**
- 延伸出 GIT 可以整合檔案
(詳細的使用教學,請看另一章剪報)
----
### Github 又是什麼?
----
Github 可以想像成是**雲端**,就是像 Google 雲端、微軟 OneDrive、DropBox 一樣的雲端
但它不同在於,它使用了 **GIT**
所以它會記錄每個檔案的過去歷史版本,還有作者
----
若你使用 google 雲端存放檔案
當同一份文件再次上傳,新版會直接覆蓋舊版
#### 你很難找回舊版的文件,對吧?
----
如果你使用 Github,就不會有這些問題!
除了上述的功能,它還有很多額外用途
----
#### Q: 不會寫程式也可以?
使用 GIT 跟 Github,都不用寫任何程式碼,只需安裝軟體、辦帳號
---
## 創建 Github 帳號
----
### 步驟
1. 進入 [Github 官網](https://github.com/)
2. 點擊右上角的 [sign up](https://github.com/signup)
3. 輸入你的**信箱** (Gmail 或公司信箱皆可)
4. 點擊 Continue 後,輸入你的**密碼** (請記下來)
5. 點擊 Continue 後,輸入**帳號** (僅能英數)
6. 到你的信箱收取驗證信,輸入驗證碼
7. 登入後,系統會問你一些設定,跳過
----
### 信箱跟密碼請務必牢記!
----
#### 進入首頁後長這樣
![](https://i.imgur.com/zlxonz0.png)
(這個網站只有英文)
----
1. 點擊畫面右上角的大頭貼
2. 點擊 setting 個人資料設定
3. 為了讓大家認得你,盡量填頭貼跟 Name
![](https://i.imgur.com/8BMgfrZ.png)
---
## 如何創建專案
----
#### 我什麼時候需要開一個專案?
假如你手上有兩個案子
一個叫「健保卡預約疫苗系統」
一個叫「口罩地圖」
這樣就可以開兩個專案
----
#### 步驟
![](https://i.imgur.com/Cg3Yq3t.png)
1. 點擊綠色按鈕 Create Repository
----
![](https://i.imgur.com/cg9byEN.png)
2. 幫這個專案取名
<span style="color: #e44">注意!取名有限制!</span>
<span style="color: #e44">只能填英數、下底線、- </span>
----
![](https://i.imgur.com/KOcLZCm.png)
3. 設定這個專案要公開還是私人的
- 公開 (Public):全世界都看得到內容
- 私人 (private): 自己設定誰可以看
因為我們只想讓公司內成員看得到內容
所以選私人的 (private)
----
![](https://i.imgur.com/s0tfQsM.png)
4. 其餘設定
請直接保留原設定即可
----
完成後專案就會建立
![](https://i.imgur.com/CiKUvmt.png)
----
![](https://i.imgur.com/2MAt2m1.png)
因為這個專案是私人的,只有你指定的人可以看
其他人連結這個網址,會顯示不存在
---
## 上傳檔案到專案
----
![](https://i.imgur.com/CiKUvmt.png)
#### 1. 點擊藍色區域的 uploading an existing file
----
![](https://i.imgur.com/Rf736Hm.png)
2. 把你想上傳的檔案拖移到上方區域
----
![](https://i.imgur.com/ujZBEPf.png)
3. 在 commit changes 下方的 add files via upload 寫你做了什麼、上傳了什麼。可以寫中文
4. 把更詳細的上傳說明寫在 description 裡面
9. 按下 commit changes
----
![](https://i.imgur.com/6T42HtQ.png)
上傳完後,系統會導向這個專案的主頁
可以在這欣賞剛上傳了什麼
----
### <span style="color: #c33">有什麼檔案不該傳上來?</span>
1. 包含帳密、信用卡資訊、個資等敏感資訊的文件
2. 不推薦 .doc, .ppt, .pdf 這種需要指定商業軟體才能開啟的檔案,推薦 .txt, .md, .odf, .csv 等
3. 不推薦檔名包含中文、空格、特殊字元
4. 如果已經有了 productList.txt 這個文件,不要新增 productList_1.txt, productList (2).txt 這種東西
5. 很肥大的檔案,如:執行檔、影音檔、.PS, .AE, .AI, ...
6. 目錄捷徑
---
## 把同伴加進這個專案
----
現在這個專案只有你可以看
但你希望你的同伴們一起來更新這份專案
#### 所以該把同伴加進來了
----
![](https://i.imgur.com/IzPU2MV.png)
1. 點擊 Settings
----
![](https://i.imgur.com/B5CgyB3.png)
2. 點擊左邊的 collaborators
3. 點擊綠色按鈕 Add people
----
![](https://i.imgur.com/Ip7Z6KJ.png)
4. 輸入同伴的帳號或信箱
----
![](https://i.imgur.com/Rrp73OE.png)
5. 找出你的朋友後,點 add to this project
----
### 現在視角切換到你的朋友
6. 請他點 Accept invitation
![](https://i.imgur.com/DAIsMAB.png)
----
7. 這樣你的朋友也可以瀏覽、編輯專案了
<span style="color: #e44">超級警告!你的朋友可能會背刺你一刀</span>
<span style="color: #e44">目前他有權力把你過去的心血通通刪掉</span>
<span style="color: #e44">如果希望參與專案的人能有上傳限制,請看下一章</span>
---
## 查看檔案的編輯紀錄
<span style="color: #e44">我的朋友真的把我的檔案刪掉了,怎麼辦</span>
----
### 可能發生的問題
1. 朋友刪了你的檔案
2. 你不小心改了你的檔案
3. 老闆叫你改回前一版
#### 這個時候就需要查看過去的文件記錄,把它撿回來
----
1. 點擊你想查看的文件 (e.g. testfile.txt)
![](https://i.imgur.com/hIUewz8.png)
----
2. 點右上角的 **History**
![](https://i.imgur.com/1RNUJIf.png)
----
3. 會以時間軸的形式列出**誰**在**何時**做了改動
![](https://i.imgur.com/4ixYFqJ.png)
- 依這張圖就是
- tnsOdE 做了第一次的改動
- cstnaya 隨後做了第二次改動
----
4. 點進改動紀錄裡,會詳細顯示他改動了**哪幾行**
![](https://i.imgur.com/4M70pY3.png)
- 粉色:表示他**刪除**的內容
- 綠色:表示他**新增**的內容
這裡意思就是:他刪掉了第 1 行,又加上了第 1, 2 行
----
### 就算被朋友改到,也沒關係?!
既然可以看過去的改動紀錄,即使被竄改了也改得回來
別人做了什麼,大家都看得到,凡走過必留痕跡
但也不要百分百依賴這個系統,大家上傳前還是多溝通多確認比較好
----
雖然我剛剛叫它為「改動」,但大家其實都叫它「**提交**」
- 提交 (commit):就是「改動」的意思...
- 提交紀錄 (commit history):就是「改動紀錄」
- 每次有人做出上傳檔案的行為,稱為進行了一次提交,不會說他做了「改動」
很繞口吧... (;´Д`)
----
### 什麼類型的檔案可以看到過去紀錄
不是所有檔案都能看到過去紀錄,只有:
1. **純文字檔案** (plain text file) 可以看紀錄 (.txt, .md, .csv, 程式碼...等)
**圖片、商用軟體**才能開的檔案,不能看過去紀錄
1. .docx, .excel, .ppt, .pdf, .ps, ...
#### 這些檔案仍然可以提交,但有誰改動無法得知
----
![](https://i.imgur.com/2sc3iZB.png)
你可以在下面針對他這次的提交留言,罵他或稱讚他都可以
但**不推薦**你在這裡留言,因為很少會有人點進來看
---
## 創建新議題
我就是想留言給其他人,不行嗎!
----
### 可以!!
只是不要在提交紀錄裡講
到「議題」(issues) 裡面講吧!
----
1. 點擊左上角的 issues
![](https://i.imgur.com/choWOce.png)
2. 有話想大聲說?快點擊右邊的「New issue」!
----
![](https://i.imgur.com/YdxVT2Y.png)
3. 輸入議題的標題跟內文
----
其實通常大家開議題,是為了討論
1. 有新功能想上線
2. 有 Bug 要請人修
3. 有事要告知各位
4. 對目前的進度有任何疑問
5. <span style="color: #b33">通常不會用來吵架/罵人</span>
----
### 加標籤
#### 為了讓這個議題更一目瞭然它的用意
我們要幫它上「標籤」(labels)
----
![](https://i.imgur.com/YdxVT2Y.png)
- 看右邊的 Labels,在裡面選它的分類,讓大家更明白你想講什麼
- 可以複選喔!
- 除了系統預設的標籤,也可以新增自訂標籤
<span style="color: #b33">但很少人這樣做...</span>
----
![](https://i.imgur.com/bheswsR.png)
提交成功後,就新增一個議題了
大家盡情去裡面留言吧
---
### 常見問題
1. Git 要錢嗎?
- 不用,免費的
1. Github 要錢嗎?
- 不用,免費的
1. 每個檔案的上傳限制是什麼
- 檔案大小限制 25 MB 內
----
### 常見問題
4. 專案設成公開會怎樣
- 專案裡的任何內容會赤裸裸地給全世界看到
5. 可以把人加進專案後又踢出去嗎
- 可以,之後他就不能存取專案了
- 但之前的內容可能還是保留在他電腦
- 不要對權限設定這種東西百分百依賴
----
### 常見問題
6. 憑什麼 Github 是免費的啊?
- Github 目前是微軟底下的產品
- 我們在上面寫了什麼,微軟都有權可以看
- 也有權可以用 (懂了嗎??
----
### 常見問題
7. 有什麼該注意的守則嗎
- Github 終究是公開透明的網站,任何人都可以上這個網站。不要公開罵人、攻擊
- 為了符合國外的分級制度,不要上傳跟討論成人相關的內容 (色情、暴力、毒品、暗網等)
---
## 總結
1. 到目前為止,大家已經在共用一個雲端專案了
- 可以共同檢視專案的討論進度
- 可以共同檢視專案的文件
- 可以得知專案參與者有誰
- 可以備份檔案到雲端,不怕弄丟
3. 但目前有一個問題:
#### 檔案還不知道怎麼載下來到電腦裡!
這個下回分曉!
{"metaMigratedAt":"2023-06-17T09:28:31.507Z","metaMigratedFrom":"YAML","title":"Github 教學文","breaks":"true","contributors":"[{\"id\":\"3dee7c3c-7023-4393-a0bb-33ce5f238a25\",\"add\":6658,\"del\":702}]"}