# Git
資訊之芽 yjrubixcube
----
## 行前通知
[Git 課前準備](https://hackmd.io/@VLvbo_-_QjqwJnUcuKdxSQ/HkmvliOdn)
---
## 情境
----
你在寫一份報告...
```
未命名文件.txt <-
```
----
跟同學對答案以後...
```
未命名文件.txt
未命名文件_2.txt <-
```
----
問完老師之後...
```
未命名文件.txt
未命名文件_2.txt
未命名文件_final.txt <-
```
----
最後...
```
未命名文件.txt
未命名文件_2.txt
未命名文件_final.txt
未命名文件_final2.txt
未命名文件_final_final.txt
未命名文件_finalx3.txt <-
```
----
也可以回去看之前寫了甚麼
```
未命名文件.txt
未命名文件_2.txt
未命名文件_final.txt
未命名文件_final2.txt <-
未命名文件_final_final.txt
未命名文件_finalx3.txt
```
----
如果是小組作業,每個人電腦裡都有一組檔案,檔名還不一定一樣格式,到最後作業很容易亂七八九。
這時候就需要版本控制,可以把過去的紀錄保留起來,隨時回去查看。
---
## Git
----
- 版本控制工具
- 查看以前的版本
- 處理跟別人合作寫code
---
## GitHub
GitHub是一個線上軟體原始碼代管服務平台,使用Git作為版本控制軟體
來自[維基百科GitHub中文頁面](https://zh.wikipedia.org/wiki/GitHub)第一句
----
可以把他想成適合放code的雲端硬碟
當然也不只可以放code,文字圖片等也都可以亂丟
----
也會有人丟一些不是code的東西
https://github.com/Anduin2017/HowToCook#%E7%A8%8B%E5%BA%8F%E5%91%98%E5%81%9A%E9%A5%AD%E6%8C%87%E5%8D%97
---
## Demo
創建一個repository並用vscode打開
----
1. 創建一個repository
2. 打開terminal/cmd/git bash
3. `git clone [你的url]` (這邊選https比較簡單)
---
## Git 常見指令
----
依照你比較可能會用到順序
- clone
- status
- add
- commit
- push
- pull
- branch
- checkout
- merge
---
## Demo
加入檔案
----
![](https://hackmd.io/_uploads/ByvRO0H_3.png)
----
![](https://hackmd.io/_uploads/B1Hy6RHuh.png)
---
## 參考資料&延伸閱讀
----
- [去年Git簡報](https://hackmd.io/@-TyNLpH6RM-50upth1_LeQ/BkEB1J_rc#/)
- [w3schools](https://www.w3schools.com/git/default.asp)
- [GitBook](https://git-scm.com/book/en/v2)
- [連猴子都能懂得git入門指南](https://backlog.com/git-tutorial/tw/)
- [Learn Git Branching](https://learngitbranching.js.org/?locale=zh_TW)
{"title":"Git","breaks":true,"description":"資訊之芽 yjrubixcube 2022/05/08","contributors":"[{\"id\":\"54bbdba3-ffbf-423a-b026-751cb8a77149\",\"add\":2015,\"del\":367}]"}