YTGET

YouTube · Facebook · X · TikTok · Instagram · Threads

兩小時 Git 教學用待辦專案實作暫存區、回滾與分支衝突

YouTube 影片筆記

兩小時 Git 教學用待辦專案實作暫存區、回滾與分支衝突

原片標題:一个视频学会 Git + GitHub:AI 编程必不可少的两个工具

原片說明
这期视频从零开始,用一个小项目「马克待办」,带你把 Git 和 GitHub 的日常用法完整走一遍。每个概念都配了动画图解,每条命令都在终端里实际演示,跟着做就能学会。 你会学到: - 安装 Git(用 AI 安装 / Windows / macOS) - 存档:工作区、暂存区、提交历史,git add 和 git commit 到底做了什么 - 回滚:改动只在工作区、已进暂存区、已经提交,三种情况分别怎么退回去 - 用 .gitignore 忽略不想提交的文件 - 分支:创建、合并、处理合并冲突、两种合并策略 - 进阶:Rebase、Stash、Worktree - GitHub:配置 SSH Key、创建仓库、上传代码、git clone 下载代码 示例项目:https://github.com/MarkTechStation/MarkTodo 时间戳: 0:00:00 开场 0:01:20 使用 AI 安装 Git 0:02:00 手动安装 Git(Windows 版) 0:03:13 手动安装 Git(macOS 版) 0:04:48 如何存档 0:19:42 回滚的 3 种场景 0:21:50 回滚(改动只在工作区) 0:27:29 回滚(改动已进暂存区) 0:32:42 回滚(改动已提交为 commit) 0:44:49 使用 .gitignore 忽略文件 0:48:59 什么是分支 0:52:53 创建分支 0:59:32 合并分支 1:00:54 处理合并冲突 1:09:55 两次合并的区别 1:12:19 Rebase 1:19:23 Stash 1:28:02 Worktree 1:37:22 GitHub 的使用场景 1:38:27 配置 SSH Key 1:42:47 创建 GitHub 仓库 1:44:16 上传代码到 GitHub 1:48:09 从 GitHub 下载代码 #Git #GitHub #教程 #AI #编程 #代码

我原本以為 Git 這種東西看文件就好,結果馬克把「暫存區」講成一個具體的抽屜,我才發現自己以前根本沒搞懂 git add 在幹嘛。這支影片將近兩小時,從安裝一路講到 Worktree 跟 GitHub,中間還用「馬克待辦」這個小專案從頭做到尾,不是那種只念指令的教學。

用動畫解釋工作區、暫存區、提交歷史三者的關係
用動畫解釋工作區、暫存區、提交歷史三者的關係09:46

影片時間軸

  1. 02:04從 Windows 安裝 Git,一路按 Next 到底
  2. 03:17macOS 安裝 Git,順帶裝了命令列開發者工具
  3. 04:56打開「馬克待辦」專案,示範 git init 前的狀態
  4. 09:37畫圖解釋工作區、暫存區、提交歷史三個區域
  5. 14:21設定使用者名稱與信箱,準備第一次 commit
  6. 15:55用 git log 看 commit 編號與提交紀錄
  7. 21:53改壞 index.html,示範工作區改動怎麼還原
  8. 27:56改動已進暫存區,用 git restore --staged 退回去
  9. 33:13改動已 commit,用 git reset --hard 整個砍掉
  10. 41:46改用 git revert 產生一個反向 commit 來回滾
  11. 46:17建立 .gitignore,把 notes.txt 排除在版控外
  12. 52:51建立 feature/due-date 分支,切過去開發新功能
  13. 64:22合併兩個分支時撞出 CONFLICT,手動解衝突
  14. 76:25用動畫解釋 rebase 是把 commit 一個一個搬過去
  15. 82:15用 git stash 把寫一半的改動收起來,切去修 bug
  16. 91:07用 git worktree 開第二個目錄同時開發統計功能
  17. 100:18產生 SSH key,貼到 GitHub 完成身分驗證
  18. 108:48刪掉整個專案資料夾,用 git clone 從 GitHub 救回來
改壞檔案後用 git restore 還原
改壞檔案後用 git restore 還原21:53

暫存區不是多餘的手續

馬克用一張圖把工作區、暫存區、提交歷史拆開講,這段是整支影片的地基。他的說法是,暫存區讓你一次只挑想存進版本的東西,不用把整個資料夾的改動全部打包。後面所有回滾、分支、stash 的操作,其實都建立在這個三層結構上,這裡沒看懂,後面會整路卡。

git restore --staged 把改動退出暫存區
git restore --staged 把改動退出暫存區27:56

回滾要看你改到哪一層

三種情境分得很清楚:只改工作區,用 git restore 就回來;已經 git add,要多一步 --staged 先退出暫存區;已經 commit,就得用 git reset --hard 把 HEAD 往回搬。馬克特別提醒 --hard 會連工作區的改動一起清掉,這段講得夠重,算是整支影片少數帶警告的地方。

git revert 產生反向 commit 來抵銷改動
git revert 產生反向 commit 來抵銷改動41:46

合併衝突其實是兩邊都想加同一行

他故意讓排序功能和全部完成功能都去改同一段按鈕區,merge 下去直接 CONFLICT。畫面上把 HEAD 那邊和 feature 那邊的程式碼並排攤開,再手動刪掉標記符號,這段是整支影片最有臨場感的地方,比前面念指令有趣得多。

rebase 把 commit 一個一個搬到 master 後面
rebase 把 commit 一個一個搬到 master 後面76:25

rebase 跟 merge 的差別講得比文件清楚

第一次合併是快進,master 直接往前挪;第二次因為兩邊都動過,Git 得新造一個合併 commit。馬克用動畫示範 rebase 是把分支上的 commit 一個一個拔起來、重新接到 master 後面,過程中照樣會撞衝突,得逐個解。這段把「換地基」這個比喻用到底,聽完大概就不會再搞混。

git worktree 開出第二個目錄同時開發
git worktree 開出第二個目錄同時開發91:07

Worktree 是給同時開兩條線的人用的

stash 適合臨時被打斷,但如果你要一邊寫匯出、一邊趕統計,一直 stash 會很煩。worktree 讓同一個倉庫長出第二個目錄,各自有工作區和暫存區,但提交歷史只有一份。馬克也示範了刪 worktree 不能只丟資源回收桶,得用指令清掉,這個細節有講到。

值得下載嗎:值得,尤其你如果只會 add 跟 commit 就沒了。這支把回滾、分支、rebase、stash、worktree 一路串在同一個專案上,當複習教材留著很實用。

覺得這篇筆記有幫助嗎?
YTGet 編輯室|看完影片整理的筆記,細節以原片為準。

連線中

影片封面

擷取畫面

輸入時間點,例如 3:20、3.20 或 200

影片皆已含音訊。檔案越大準備時間越久,完成前請保持頁面開啟。