好了,經過前幾篇的努力,我們的開發環境已經搭建完成,並進行了初步的測試。一切看起來都很順利,但在正式進入開發之前,我們還有一件重要的事情要做:加入版本控制。
你可能會想:「現在還早吧?我一個人開發,有必要嗎?」但相信我,版本控制就像是遊戲中的存檔點,或者電影裡的多重宇宙時間線,在你需要的時候,能讓你回到過去,或者探索不同的開發路線。
想像一下,你正在開發一個新功能,結果一不小心把原本運作正常的程式碼改壞了。如果沒有版本控制,你可能得花上好幾個小時,甚至幾天,來找出問題所在。但有了版本控制,只要輕鬆一個指令,就能回到之前的狀態,就像穿越到了平行宇宙,一切問題都不復存在。
個人經驗分享:有一次,我在專案中嘗試一個新框架,結果發現完全不適合。幸好當初有用 Git,把嘗試的部分放在新分支,最後輕鬆切回主分支,省了不少麻煩。
Git 可以說是開發者的時間機器,讓你在專案的時間線上自由穿梭。每一次的提交(commit),就像是遊戲的存檔點,你可以在任何時候回到這個點。更厲害的是,Git 還支持分支(branch),讓你可以在不同的時間線上探索,互不干擾。
加入版本控制後,你就擁有了「多重宇宙」的力量。錯誤的代碼?沒關係,那只是另一個平行宇宙的悲劇,在這個宇宙裡,我們可以重新開始!
首先,確保你的電腦已經安裝了 Git。如果還沒有,請到 Git 官方網站 下載並安裝。各個平台的安裝都非常簡單,這裡就不贅述了。
在專案的根目錄下,執行以下指令:
git init
這會在你的專案中建立一個 .git 目錄,Git 會在這裡存放所有的版本控制資訊。
我們不希望把一些不必要的檔案納入版本控制,特別是那些會隨系統變動的檔案,例如編譯後的檔案、環境設定檔等。
在專案根目錄下建立 .gitignore 檔案,內容如下:
# Node modules
web/node_modules/
web/.nuxt/
web/.output/
# Laravel vendor
api/vendor/
api/storage/
api/node_modules/
# Environment files
*.env
.env
# Composer lock
api/composer.lock
# Docker volumes
.docker-env/.db_data/
# Log files
*.log
# MacOS
.DS_Store
# IDE files
.idea/
.vscode/
這樣,Git 就會自動忽略這些檔案,不會把它們納入版本控制。
現在,我們可以將目前的專案狀態提交到 Git:
git add .
git commit -m "初次提交:建立專案結構與開發環境"
恭喜你,你的專案現在已經有了第一個存檔點!
雖然在本機使用 Git 已經不錯,但將專案推送到遠端儲存庫(如 GitHub)會更安全,也方便未來的協作。
如果你還沒有 GitHub 帳號,請到 GitHub 官方網站註冊一個。GitHub 是目前最流行的代碼託管平台,除了備份相關程式碼外,還有很多強大的功能等著你探索。
登入 GitHub 後,點擊右上角的「+」號,選擇「New repository」,然後:
回到本機終端機,執行以下指令(請將 your-username 和 your-repo 替換為你的 GitHub 用戶名和儲存庫名稱):
git remote add origin https://github.com/your-username/your-repo.git
git branch -M main
git push -u origin main
這樣,你的專案就成功推送到 GitHub 上了!現在,即使你的電腦爆炸(當然希望不會),你的代碼也安全地存在於雲端。
每當完成一個功能或修正一個 bug,記得進行提交。提交訊息要清晰明瞭,讓未來的自己一看就懂。例如:
git commit -m "新增財務記錄的 API 功能"
分支就像是多重宇宙的不同時間線,讓你可以在不影響主線的情況下進行開發。當你想嘗試新的功能或實驗時,可以建立一個新分支:
git checkout -b feature/add-authentication
開發完成並測試無誤後,再合併回主分支:
git checkout main
git merge feature/add-authentication
別忘了定期將你的提交推送到 GitHub,上傳到雲端既是備份,也是紀錄。
git push
確保 .env 等包含敏感資訊的檔案被加入 .gitignore,避免不小心洩露 API 金鑰、密碼等重要資訊。
再次提醒:別問我為什麼知道這麼重要,因為我聽說,有人在公開的儲存庫中提交過自己的 AWS 密鑰,結果被亂刷了一大筆費用。那真是教訓啊!
如果某次提交導致專案無法運作,你可以回到之前的版本:
git checkout <commit-hash>
查看所有的提交歷史,了解專案的演進:
git log
如果修改了檔案但還沒提交,想要撤銷,可以執行:
git checkout -- <file>
加入版本控制,就像是給你的專案安裝了一個時光機,讓你能夠自由地在時間線上穿梭,探索各種可能性,而不用擔心犯錯。Git 和 GitHub 不僅僅是工具,更是開發者的好夥伴。
現在,我們的專案已經有了穩固的基礎和時間機器,接下來就可以正式開始後端 API 的開發了!讓我們繼續這場充滿挑戰和樂趣的冒險吧!
最後的叮嚀:版本控制可能一開始看起來有點複雜,但相信我,一旦習慣了,你會覺得離不開它。就像你花了 N 個小時調整了代碼格式,只有自己看得出來,但這種內心的滿足感,才是開發的樂趣所在!
加油,我們在下一篇文章中見!