iT邦幫忙

2024 iThome 鐵人賽

DAY 12
2
Modern Web

後端菜雞仔想學 Laravel系列 第 12

Git & GitHub:派遣你的時光機!

  • 分享至 

  • xImage
  •  

在我們建立 Laravel 新專案時,會詢問我們要不要初始化 Git 倉庫?

Would you like to initialize a Git repository? ──────────────┐
 │ ● Yes / ○ No                                              │
 └───────────────────────────────────────────────────────────┘

我選擇 Yes!
這個專案就可以使用 Git 進行版本控制。

如果這個專案需要多人協作,不論使用什麼版本控制系統,將這個專案進行版本控制是必需的,所以我們今天就來基礎了解一下 Git 與 GitHub。

Git 是什麼?

Git 是一個版本控制系統,主要是幫助我們記錄程式碼的歷史。
當你寫程式時,Git 就像是一台時光機一樣,記錄你每一次對程式碼的改動,這樣你就可以隨時回到之前的版本,避免因為某些錯誤導致所有工作都被搞砸。

  • 例如:
    多人協作一個專案,你今天寫了一段很重要的功能,但突然發現加進去的程式碼有問題,這時候就可以利用 Git 回到上一個版本,看是要修復問題,或是比較不同版本的差異,方便追蹤誰改了什麼。

GitHub 是什麼?

如果 Git 是一台時光機,那 GitHub 就是時光機停放的基地台。
可以將 GitHub 想像成一個雲端倉庫,專門存放你用 Git 來管理的程式碼;或是像我一樣把 GitHub 當作是 iCloud 也很好理解。

平常你在自己電腦上用 Git 來記錄程式碼的改動,而 GitHub 則是把這些紀錄推送到網路上,讓你能夠隨時隨地存取你的專案,或者跟其他開發者一起協作。

簡單來說,GitHub 是一個分享、協作的平台,讓團隊成員可以很方便地看到彼此的程式碼、提交建議、進行版本控制等等。

GitHub 的重要功能

倉庫(repository)

  • 每一個專案在 GitHub 上都會有一個「倉庫」,這裡存放著你的程式碼和所有版本的歷史。
  • 每個人都可以克隆這個倉庫到自己的電腦上進行修改。

分支(branch)

  • 分支就像是平行的世界,你可以在分支上測試新功能,而不會影響主要的程式碼。
    當一切測試好後,你再把分支合併回主線(main/master)。

Pull Request(PR)

  • 這是一個請求,讓別人來檢查你的程式碼,看看是否有問題,或者是否可以合併到主線。

以下介紹幾個我有使用過或是大家可能常用的 Git 操作,如果想更了解 Git 建議可以參考高見龍老師的書:為你自己學 Git

常用的 Git 操作

git init
  • 初始化一個 Git 專案。
    這會在你的專案目錄中建立一個 .git 資料夾,代表這個目錄已經開始用 Git 來進行版本控制。
  • 如果一開始建立 Laravel 新專案時,你選擇 No,但後來你需要使用 Git 的話,可以使用此指令。
git add
  • 把檔案加到 Git 的「待提交區」裡面。
    可以想像成:你要把東西放到購物車一樣,先把要提交的檔案加進來。
git commit -m "Add initial project files and configurations"
  • 提交改動。可以想像成:把購物車裡面的東西真正結帳。
  • 每次提交時,你可以寫一個簡短的描述,告訴別人這次改了什麼。
git status
  • 看看目前有哪些檔案修改了但還沒提交,或者哪些檔案已經準備提交。
    用這個指令可以快速了解當前專案的狀態。
git push -u origin main
  • 把本地的修改推送到 GitHub 上,這樣你或其他人都能在線上看到你最新版本的程式碼。
  • 如果你的主分支名為 main,就使用 main;如果是 master,則使用 master。
git pull origin main
  • 從 GitHub 上拉取最新的版本,這樣你本地的專案就會和雲端同步。
  • 如果你的專案使用的分支名稱不是 main(例如 master 或其他自訂分支名稱),請將 main 替換為正確的分支名稱。

注意事項

.gitignore 檔案

在上傳到 GitHub 時,有些檔案是一般不建議上傳的,特別是那些可能包含敏感資訊或不必要的檔案。
通常會將這些不上傳的檔案放在 .gitignore 檔案裡進行排除。

所以把檔案加到 Git 的「待提交區」裡面前,請確認你的 .gitignore 檔案中是否列出了不需要上傳的檔案(如 .env 或 vendor 資料夾)。

以下整理 GPT 建議應避免上傳的檔案

.env 檔案:

  • 原因:這個檔案通常包含你的環境變數,例如數據庫密碼、API 密鑰等,應該保持私密。

vendor/ 資料夾:

  • 原因:這是 Composer 下載的依賴檔案,通常不需要上傳,因為其他開發者可以通過 composer install 自動生成。

storage/ 資料夾:

  • 原因:這個資料夾通常包含日誌文件、上傳的檔案和快取資料,這些也不應該上傳。

public/uploads/(如果存在):

  • 原因:如果你有使用者上傳的檔案,這些檔案也不應該被上傳到 GitHub。

詳細上傳 GitHub 的操作推薦可以參考此篇文章:Day27|在 GitHub 上建立專案與使用 git push 指令將檔案上傳到 GitHub

也是以前鐵人賽的文章,菜雞仔如我,覺得幫助我很多,非常易懂!

小結

簡單來說,Git 是在你電腦上管理版本控制的工具,記錄你對專案的每次修改,而 GitHub 則是讓你可以把這些紀錄放在雲端,讓其他人能參與進來,進行團隊合作。

我覺得基礎了解一下版本控制是重要的,不論對自己或對團隊都是加分的,菜雞仔如我,也不是深入了解版本控制,我自己要求不多,覺得目前的我多少會用就好XD

每家公司可能使用,也可能不使用,或是使用的系統也不相同。
建議可以從 Git 與 GitHub 入門,為你每個專案派遣專屬時光機!


上一篇
測試 API:初次使用也能快速上手的 Postman
下一篇
為什麼找不到資料就是 404 不是 444 呢?:關於 HTTP 狀態碼
系列文
後端菜雞仔想學 Laravel13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言