---
# System prepended metadata

title: 走歪的工程師James - Git教學 系列
tags: [Video Note]

---

# [走歪的工程師James - Git教學 系列](https://www.youtube.com/watch?v=Zd5jSDRjWfA&list=PLz-S_Wd1N3svV8XnuDM6CPaTCtQkk5SY4&index=1)

## 15分鐘學會git & github
- [x] 介紹 git & github
- [x] 教學開始
- [x] 上傳到 github
- [x] 用 git clone 在其他電腦下載開發
## 搭配vscode使用更簡單！git reset & git checkout
- [x] Intro 
- [x] 環境設置
- [x] 基本操作介紹
- [x] 用 git reset 來 unstage
- [x] 用 git checkout 來捨棄變更
- [x] 用 git reset 來取消上次 commit
## conflicts(衝突)是什麼？如何處理？
- [x] Intro
- [x] 設置模擬環境
- [x] 上傳到 github
- [x] 在 B 電腦 clone
- [x] 在 A 電腦修改檔案
- [x] 把 A 的修改 push 到 github
- [x] 在 B 對檔案做修改
- [x] 在 B 做 push，發生 conflict
- [x] git pull
- [x] 解決 conflict
- [x] 再 push 一次
- [x] 結尾
## git branch一次學會：branch, pull request, merge, rebase
- [x] Intro
- [x] branch 可以解決什麼問題
- [x] branch 是怎樣的功能？
- [x] 開始實際操作
- [x] 設置環境（模擬 A、B 兩台電腦）
- [x] B：建立新的 branch
- [x] 用 git branch 查看電腦上所有的 branch
- [x] B：在新 branch 上做開發
- [x] A：引發衝突
- [x] B：完成功能開發並 push 到 github
- [x] 如何將新 branch 整併回 master？
- [x] merge方法1：使用 pull request
- [x] 補充：開發到一半如何切換到其他分支
- [x] git push -f 解說
- [x] 用 git branch -d 刪除不要的 branch
- [x] merge 方法2：使用 git merge
- [x] 兩種方法比較：為何我推薦第一種
## 如何寫好的commit訊息
- [x] 訊息的重要性
- [x] 寫commit訊息的7大原則
- [x] commit訊息的格式
- [x] 主旨不超過50個字母
- [x] 主旨用大寫開頭
- [x] 主旨不用加句點
- [x] 主旨使用祈使句
- [x] 內文72個字一行
- [x] 用內文解釋「為什麼」做這些修改
- [x] 用中文commit？
- [x] 結尾

## 文章
- [x] [Git Commit Message 這樣寫會更好，替專案引入規範與範例](https://wadehuanglearning.blogspot.com/2019/05/commit-commit-commit-why-what-commit.html)

---
## 筆記
### 專業術語

### 指令
* git init //初始化repo
* git status  //查看狀態
* git add <檔案名稱>  //新增檔案到git
* git commit  //保存進度  
* git clone <網址> //下載git repo
* git reset --<檔案名稱> //將add過的檔案unstage回來
* git checkout --<檔案名稱>
* git reset --soft HEAD~1
* git pull //把remote的新commit抓下來
* git branch //查看電腦上的branch
* git checkout -b <branch名稱> //建立新branch並切換過去

