第一部分
核心比喻:把 Git 想成雲端筆記本
不懂技術也能理解。把 Git 系統類比成你熟悉的東西,馬上就明白了。
生活比喻
想像你有一本「Claude 的學習筆記」。台式機上有一份,筆記本上有一份,GitHub 上存著「雲端正本」。
每次任一台電腦學到新東西,先同步到雲端,另一台再從雲端抄一份——
這就是 Git 同步的全部意思。
完整同步架構圖
台式機
D:\Backup\Downloads
D:\Backup\Downloads
本地副本 A
⟶
git push
上傳
上傳
⟶
GitHub
thomastangnz-commits/
downloads-config
thomastangnz-commits/
downloads-config
雲端正本
⟶
git pull
下載
下載
⟶
筆記本
D:\Backup\Downloads
D:\Backup\Downloads
本地副本 B
git pull — 「從雲端下載最新版」(早上開機時做)
GitHub
雲端正本
雲端正本
有最新版本
⟶
pull 拉取
我的電腦
本地副本
本地副本
更新到最新
就像手機每天早上自動同步通訊錄——把雲端的最新資料拉到本機。
git push — 「把改動上傳雲端」(用完 Claude 後做)
我的電腦
本地副本
本地副本
有新內容
⟶
push 推送
GitHub
雲端正本
雲端正本
備份完成
就像拍完照片後把相冊備份到 iCloud——把本機的新內容推到雲端保存。
關鍵順序:永遠先 pull 再 push。就像把文件改之前,先確認自己有最新版本,再覆蓋雲端。
第二部分
詞彙表:每個英文詞都搞懂
Git 裡常見的 10 個詞,每個都附全稱、中文名、說明、生活比喻。
Git
全稱:Git(版本控制系統) 英文讀音:/ɡɪt/
文件歷史追蹤器
一個程式,能記錄文件的每一次修改歷史,讓你隨時回到任何舊版本。安裝在你的電腦上,不需要網路也能用。
就像 Word 的「還原」功能,但強到可以追蹤幾年的所有修改,還能看是誰、什麼時候改了什麼。
GitHub
全稱:Git Hub(代碼雲端倉庫平台) 網址:github.com
代碼雲端倉庫
一個網站,專門存放用 Git 管理的文件。你把本地文件推上去,就有了雲端備份,其他電腦也能下載。
就像 Google Drive,但專為代碼和配置文件設計,還能追蹤每次改動的歷史。
Repository (Repo)
全稱:Repository(代碼倉庫) 簡稱:Repo
倉庫 / 項目文件夾
一個被 Git 管理的文件夾,裡面存放了所有文件和完整的修改歷史。你的 Claude Code 配置就住在一個 Repo 裡。
就像一個有「版本記錄功能」的特殊文件夾,不只存文件,還存每次改動的日誌。
git pull
pull = 拉取、下載 方向:雲端 → 本機
從雲端下載最新版
把 GitHub 上的最新版本抓到你的電腦,讓本地文件和雲端保持一致。每次開始工作前都應該先 pull 一次。
就像手機「同步通訊錄」——把雲端最新的連絡人資料下載到手機上。
git push
push = 推送、上傳 方向:本機 → 雲端
把本地改動上傳到雲端
把你在本機做的修改,推送到 GitHub 雲端。做完 commit 後才能 push。每次用完 Claude Code 後記得 push 一次。
就像把手機新照片備份到 iCloud——把本機的新內容推到雲端保存。
git commit
commit = 提交、確認 作用:在本機建立記錄點
儲存記錄點(本機)
在本機建立一個「存檔點」,記錄「我現在改了什麼」。Commit 只在本機生效,還要 push 才會上傳到雲端。
就像遊戲的存檔——存檔後可以繼續走,但如果遊戲機沒聯網,其他玩家不會知道你存到哪了。push 才是「上傳存檔到雲端」。
git clone
clone = 克隆、複製 用途:第一次在新電腦下載整個 Repo
複製整個倉庫到本機
把 GitHub 上的整個 Repo(包含所有歷史記錄)複製到你的電腦。只需要做一次,之後用 pull 更新就好。
就像第一次在新手機登入 iCloud,把所有照片下載下來——只做一次,之後 pull 就夠了。
Branch (分支)
全稱:Branch(分支) 常見:main 或 master
獨立工作線
在不影響主線(main)的情況下,開一條「側支」來試驗新東西。做好了再合回主線,沒做好直接刪掉。
就像文件的「草稿副本」——在草稿上改,改好了才覆蓋正本,正本永遠是安全的。
Merge (合併)
全稱:Merge(合併) 用途:把兩個分支合成一個
把兩份改動合一
把一個分支的修改,合併到另一個分支。如果兩邊改的是不同地方,Git 能自動合併;如果改了同一行,就需要人工選哪個。
就像你和同事各自修改了同一份文件的不同部分,然後合成最終版——只要改的地方不重疊,就能自動合成。
Conflict (衝突)
全稱:Merge Conflict(合併衝突)
兩邊改了同一個地方
當兩台電腦都修改了同一行文字,Git 不知道要保留哪個版本,就會標記「衝突」,需要你手動選擇。
就像兩個人同時修改同一段文字——Google Docs 裡兩個人搶著改同一個字,系統不知道用誰的,需要人來決定。
只有在「兩台電腦同時改了同一個文件的同一行」才會發生。日常使用很少遇到,遇到了看第三部分的處理方法。
git add
add = 加入暫存區 用途:選擇哪些文件要被 commit
選擇要打包的文件
把修改過的文件放進「暫存區」,等待 commit。
git add -A 是選擇全部修改的文件。就像把要寄出的東西放進箱子——還沒寄(commit),只是先整理好要打包的內容。
第三部分
Claude Code 記憶同步流程
逐步操作,每步都附實際命令。在命令提示字元(CMD)或 VS Code 終端機輸入。
前提條件:你的電腦已安裝 Git,且
D:\Backup\Downloads 文件夾已連結到 GitHub 上的私人 Repo。如果還沒做,先看「Git 私人備份 Repo 小白指南」。
1
第一次設置:在新電腦 clone Repo(只做一次)
第一次在新電腦設定時,需要先把雲端的 Repo 完整複製到本機。之後不需要重複這個步驟。
CMD / Terminal
# 第一步:進入你想存放的磁碟 cd /d D:\Backup # 第二步:把 GitHub 上的 Repo 複製到本機 # 把下面的連結換成你的 Repo 地址 git clone https://github.com/thomastangnz-commits/downloads-config.git Downloads # 完成後會看到: Cloning into 'Downloads'... remote: Counting objects: 123, done.
完成後,
D:\Backup\Downloads 資料夾就是你的本地 Repo 了,裡面有所有 Claude Code 記憶和設定文件。2
每天早上開電腦:先 git pull
每次打開電腦要用 Claude Code 前,先執行 pull,確保你有最新版本(特別是另一台電腦昨天更新了什麼)。
CMD / Terminal
# 進入 Repo 文件夾 cd /d D:\Backup\Downloads # 從 GitHub 拉取最新版本 git pull # 成功的回應(已是最新): Already up to date. # 或者(有新內容被下載): Updating abc1234..def5678 Fast-forward CLAUDE.md | 5 +++++
看到 "Already up to date." 說明你已是最新版,可以放心開始用。
3
用完 Claude Code 後:git add + commit + push
每次 Claude Code 學到了新東西(更新了 CLAUDE.md 或 memory 文件夾),用完後記得上傳到雲端備份。
CMD / Terminal — 三步上傳
# 步驟一:進入 Repo 文件夾 cd /d D:\Backup\Downloads # 步驟二:把所有修改加入暫存區 git add -A # 步驟三:建立 commit(存檔點),填寫說明 git commit -m "sync: 更新 Claude 記憶 2026-04-06" # 步驟四:推送到 GitHub git push # 成功回應: Enumerating objects: 5, done. Writing objects: 100% (3/3), done. To https://github.com/thomastangnz-commits/downloads-config.git abc1234..def5678 main -> main
commit -m 後面引號裡的文字是「備忘說明」,寫什麼都可以,方便以後查是哪次更新。
4
如果出現衝突:如何解決
衝突(conflict)在日常使用中很少發生。但如果兩台電腦都修改了同一個文件,pull 時可能會提示衝突。
衝突提示長這樣:
CONFLICT (content): Merge conflict in CLAUDE.mdAutomatic merge failed; fix conflicts and then commit the result.
解決衝突的步驟
# 1. 查看哪些文件有衝突 git status # 有 "both modified:" 的就是衝突文件 # 2. 用 VS Code 打開衝突文件 # 找到 <<<<<<< HEAD ... ======= ... >>>>>>> 的段落 # <<<<<<< HEAD 以下是你的版本 # >>>>>>> 以上是雲端版本 # 手動選哪個要保留,刪掉另一個和 <<<< ==== >>>> 符號 # 3. 解決後,重新 add + commit git add -A git commit -m "resolve: 合併衝突" git push
最簡單的方法:在 VS Code 打開衝突文件,點「Accept Current Change」(保留你的)或「Accept Incoming Change」(用雲端的)即可。
第四部分
一鍵同步腳本
把兩個 .bat 腳本放在桌面,用 Claude 前雙擊一個,用完後雙擊另一個,再也不會忘記同步。
使用方法:在
D:\Backup\Downloads 建立這兩個文件(或讓 Claude Code 幫你建),右鍵 → 傳送到 → 桌面(建立捷徑),就能雙擊使用。
sync-before.bat
用 Claude 前雙擊
用 Claude Code 前先執行,確保記憶是最新版本。
sync-before.bat
@echo off chcp 65001 >nul cd /d D:\Backup\Downloads rem 從 GitHub 拉取最新版本 git pull rem 顯示完成訊息 echo. echo 記憶已同步!可以開始用 Claude Code 了 echo ----------------------------------- pause
sync-after.bat
用完後雙擊
用完 Claude Code 後執行,備份最新記憶到雲端。
sync-after.bat
@echo off chcp 65001 >nul cd /d D:\Backup\Downloads rem 把所有修改加入暫存區 git add -A rem 建立 commit(存檔點) git commit -m "sync: %date% %time%" rem 推送到 GitHub git push rem 顯示完成訊息 echo. echo 記憶已備份到雲端! echo ----------------------------------- pause
小提醒:如果 sync-after.bat 顯示「nothing to commit, working tree clean」,說明今天 Claude Code 沒有更新任何記憶文件,不需要擔心,這是正常的。
進階:一行指令完成所有步驟
CMD — 一行搞定
cd /d D:\Backup\Downloads && git add -A && git commit -m "sync: auto" && git push
第五部分
常見問題 FAQ
真實使用時最常遇到的問題,點開查看答案。
Q:如果忘記 pull、直接用 Claude Code 了怎麼辦?
沒有大問題,只是可能用到舊版記憶。補救步驟:
1. 用完 Claude 後,先執行
2. 如果沒有衝突,會自動合併,然後再
3. 如果有衝突,按照第三部分的「衝突解決」步驟處理
預防方法:把 sync-before.bat 放在桌面,開電腦第一件事雙擊它,養成習慣後就不會忘記了。
1. 用完 Claude 後,先執行
git pull2. 如果沒有衝突,會自動合併,然後再
git push 就好3. 如果有衝突,按照第三部分的「衝突解決」步驟處理
預防方法:把 sync-before.bat 放在桌面,開電腦第一件事雙擊它,養成習慣後就不會忘記了。
Q:兩台電腦同時開著、同時在用 Claude Code,會怎樣?
如果兩台電腦同時修改了「同一個文件的同一行」,下次有一台 push 後,另一台 pull 會出現衝突。
實際上,Claude Code 的記憶文件(MEMORY.md、CLAUDE.md 等)通常不會同時被兩台電腦改同一行,所以衝突概率很低。
最佳實踐:盡量同一時間只在一台電腦用 Claude Code,或者用完一台立刻 push,再用另一台前先 pull,就能避免大多數衝突。
實際上,Claude Code 的記憶文件(MEMORY.md、CLAUDE.md 等)通常不會同時被兩台電腦改同一行,所以衝突概率很低。
最佳實踐:盡量同一時間只在一台電腦用 Claude Code,或者用完一台立刻 push,再用另一台前先 pull,就能避免大多數衝突。
Q:可以讓 Claude Code 自動 push 嗎?
技術上可以,但根據 Thomas 的使用規則,所有 git push 必須由人工手動執行,AI 不得自動 push。
原因是:
1. 防止 AI 意外把敏感資料推到公開 Repo
2. 每次 push 前,人工確認「今天確實有值得備份的更新」
3. commit message 自動生成的內容可讀性差
折衷方案:使用本頁的 sync-after.bat 雙擊腳本,保留人工觸發的同時,讓步驟盡量簡單。
原因是:
1. 防止 AI 意外把敏感資料推到公開 Repo
2. 每次 push 前,人工確認「今天確實有值得備份的更新」
3. commit message 自動生成的內容可讀性差
折衷方案:使用本頁的 sync-after.bat 雙擊腳本,保留人工觸發的同時,讓步驟盡量簡單。
Q:git push 時出現「rejected」錯誤怎麼辦?
! [rejected] main -> main (fetch first) 這個錯誤意思是:雲端有你還沒下載的新版本,不能直接 push。修復步驟:
1. 先執行
git pull 把雲端的更新下載下來2. 如果 pull 成功沒有衝突,再執行
git push3. 如果 pull 有衝突,先解決衝突,再 push
記住:永遠先 pull 再 push,就不會遇到這個錯誤。
Q:Claude Code 的「記憶」具體是什麼文件?
主要是以下文件夾和文件,全部在
• CLAUDE.md — 主要規則和指令,Claude 每次啟動都會讀取
• claude-sonnet-4-6/memories/ — 儲存 Thomas 個人背景、專案狀態、踩坑教訓
• .claude/commands/ — 自訂快速指令(/sort-z 等)
• claude-sonnet-4-6/memories/lessons/ — 每次操作後的經驗教訓
這些文件加在一起就是「Claude 的長期記憶」,同步後兩台電腦的 Claude 會有相同的背景知識。
D:\Backup\Downloads\ 底下:• CLAUDE.md — 主要規則和指令,Claude 每次啟動都會讀取
• claude-sonnet-4-6/memories/ — 儲存 Thomas 個人背景、專案狀態、踩坑教訓
• .claude/commands/ — 自訂快速指令(/sort-z 等)
• claude-sonnet-4-6/memories/lessons/ — 每次操作後的經驗教訓
這些文件加在一起就是「Claude 的長期記憶」,同步後兩台電腦的 Claude 會有相同的背景知識。
Q:如何確認 push 成功、GitHub 上有最新版本?
有兩個方法確認:
方法一:看終端機輸出
push 成功後會顯示:
方法二:到 GitHub 網站查看
打開瀏覽器,登入 github.com,進入你的 Repo,查看最後一次 commit 的時間,確認是剛才。
方法一:看終端機輸出
push 成功後會顯示:
To https://github.com/thomastangnz-commits/downloads-config.gitabc1234..def5678 main -> main方法二:到 GitHub 網站查看
打開瀏覽器,登入 github.com,進入你的 Repo,查看最後一次 commit 的時間,確認是剛才。