# [Week 4] Git、VSCode、CI/CD
###### tags: `MCL` `Weekly Meeting`
### 工讀相關
* 如果是值班時吃飯,要注意工讀區的狀況
### 其他
* 企劃書下週截止
* SSH Tunnel 工具:MyEnTunnel
* RaiDrive v.s. Filezilla
* SSO 註冊頁面
* https://sso.mcl.math.ncu.edu.tw/auth/realms/master/account
* 透過 Google 快速建立帳號
## VSCode
Bookstack
~ * [關於 VSCode 的系列文件](https://docs.mcl.math.ncu.edu.tw/books/%E9%96%8B%E7%99%BC%E7%92%B0%E5%A2%83/chapter/visual-studio-code)
* GitLens
* Git History (Git Graph)
## Git
Bookstack
~ * [107 Git 會議記錄](https://docs.mcl.math.ncu.edu.tw/books/weekly-meeting/page/week-12-git%E3%80%81github%E3%80%81source-tree)

> [name=http://jlord.us/git-it/challenges-zhtw/remote_control.html]
### Remote Repository
* 透過 Git 管理專案
* 實現多人協作的工作流
* 不只是放原始碼
* 透過 Fork、Clone 快速獲得專案程式碼,任何人任何地方都可以得到最新的資料
* `git pull` 將遠端程式碼更新到自己的主機上
* `git push` 將你的最新程式碼更新到遠端倉儲
* Issue、PR 等強化團隊溝通與合作的工具
* and more
## 題外話:DevOps

> [name=https://ithelp.ithome.com.tw/articles/10184557]
* 強調開發團隊、測試團隊與維護團隊之間的整合概念
* 五個概念 **CALMS**
* **C**ulture:對其他部門的同理心
* **A**utomation:自動化排程
* **L**ean:精實開發
* **M**easurement:數據分析與回饋
* **S**hare:成效分享
### DevOps 工作流

> [name=https://devopedia.org/devops]
其中我們會提到 CI/CD:
* CI (Continuous integration):持續性發布程式碼更新並自動測試
* CD (Continuous delivery/deployment):通過程式測試後自動部屬到開放服務上
### 透過 MCL GitLab 實現 CI/CD
* CI Example: https://gitlab.mcl.math.ncu.edu.tw/mcl/sample-python-package
* CD Example: https://gitlab.mcl.math.ncu.edu.tw/mcl/ncuma
## 參考資源
* [**連猴子都能懂的 Git 入門指南**](https://backlog.com/git-tutorial/tw/)
* [入門篇](https://backlog.com/git-tutorial/tw/intro/intro1_1.html)會介紹 Git 的初始設定方式、以及介紹個人開發的時候可能需要注意的事情
* [進階篇](https://backlog.com/git-tutorial/tw/stepup/stepup1_1.html)會介紹多人開發會遇到的工具 (如 Branch),以及一些 Git 的進階操作
* [使用 VS Code 的 Git 功能](https://dotblogs.com.tw/lapland/2016/04/19/172848)