1. 開始工作:複製專案
我們從上次課程停下的地方繼續。你已在 GitHub 建立了儲存庫,現在需要把它的本機副本下載到自己的電腦上以便開始工作。這個流程稱為 複製。
步驟 1. 啟動你的 IDE。如果目前開著某個專案,透過 File -> Close Project 關閉它。在起始畫面選擇 Clone Repository 或 Get from VCS。
步驟 2. 在開啟的視窗中貼上你的儲存庫 URL。當你要複製別人的儲存庫時,這種方式很有用。URL 可以在 GitHub 的儲存庫頁面複製。
如果你要複製的是自己的儲存庫(本講的情境),最簡單的方式是直接從 IDE 登入你的 GitHub 帳號。為此請選擇 Log in to GitHub。你的 IDE 會開啟瀏覽器進行授權。
在開啟的頁面,大膽點擊綠色按鈕 Authorize JetBrains。之後你就能直接在 IDE 內從清單中挑選自己的儲存庫。選擇所需專案並按下 Clone。
步驟 3. 你的 IDE 會詢問你是否信任這個專案。因為這是你自己的儲存庫,請按 Trust Project。
步驟 4. 防毒軟體設定(Windows 使用者)
Windows 防毒軟體可能會警告 IDE 嘗試執行它不認得的動作。由於我們要建立並執行程式,需要允許 IDE 不受限制地運作。請點擊「Automatically」,讓 IDE 自動將必要的資料夾加入防毒軟體的排除清單。
2. 儲存變更:Commit
commit 是你專案在某個時間點的「快照」,也就是已保存的狀態。把它想像成遊戲中的存檔點:萬一出現問題,隨時都能回到那個狀態。每個提交都有唯一的識別碼與描述所做變更的訊息。
gitGraph
commit id: "Initial commit"
commit id: "Add user authentication"
commit id: "Fix login button bug"
commit id: "Refactor database connection"
提交歷史。每一個新的提交都是建立在前一個提交的基礎上,逐步形成專案的時間軸。
步驟 1. 進行變更。
如果你複製的是新建立的儲存庫,它只會包含一個檔案 — README.md
開啟 README.md 檔案,為你的專案新增說明。一旦開始編輯檔案,IDE 會在專案面板把它的名稱高亮為 藍色。這代表檔案已被修改,但變更尚未保存到 Git。IDE 也會在你修改的地方加上 綠色線條。
步驟 2. 開啟 Commit 視窗。
IDE 左側有一個 Commit 標籤。打開後,你會看到所有準備保存的變更。對於第一次提交,這個視窗格外重要。
我們來看看有哪些內容:
- Changes: 這裡是已被 Git 追蹤但有修改過的檔案。在我們的例子中是
README.md,我們往裡面加了專案計畫。 - Unversioned Files: 這是專案資料夾中 Git 看得到、但尚未被追蹤的新檔案。
可能會產生疑問:是否需要把這些工具產生的檔案都加入儲存庫?
好消息是,當我們在 GitHub 建立儲存庫時,選擇了 .gitignore 範本。這個檔案已包含讓 Git 忽略不需要的資料夾或檔案的規則。不過這部分我們會在講座結尾更詳細地說明。
目前先完成第一次提交的任務——把專案的主要檔案加入歷史,並撰寫提交訊息。
步驟 3. 進行提交。
點擊按鈕 Commit。完成!你已在本機儲存庫保存了專案的「快照」。檔案名稱會恢復為一般顏色。
3. 將變更推送到 GitHub:Push
你的提交目前只存在於你的電腦上。若要與團隊分享或安全保存,就需要把它們推送到 GitHub 的遠端儲存庫。
sequenceDiagram
participant 本機儲存庫(你的電腦)
participant 遠端儲存庫(GitHub)
note over 本機儲存庫(你的電腦): 你已完成一個或多個提交。
它們目前只存在於此。
本機儲存庫(你的電腦) ->> 遠端儲存庫(GitHub):git push(推送提交)
note over 遠端儲存庫(GitHub): 你的提交已被複製,
並安全地保存於伺服器上。
步驟 1. 點擊 Push 按鈕。
在 IDE 右上角有個向上的綠色箭頭——那就是 Push 按鈕。點擊它。
步驟 2. 檢查並確認。
會開啟一個視窗,顯示所有已準備推送的提交。這是你最後一次確認是否推送正確內容的機會。點擊 Push。
如果一切順利,你會看到訊息:Pushed commits to origin/main. Create pull request
步驟 3. 在 GitHub 上檢查結果。
推送成功後,打開你在 GitHub 上的儲存庫頁面。你會看到變更已經出現。
4. Git 控制面板
你的 IDE 在頂部選單有一個專門的 Git 選單。這就是你的版本控制中樞。我們快速認識一下其中的重點項目。
Commit:開啟我們已經熟悉的保存變更視窗。Push:開啟將提交推送到 GitHub 的視窗。Update Project:非常重要的功能。它會下載其他團隊成員的最新變更(執行git pull)。每天早上開始工作前都按一下!Branches:開啟分支管理視窗。這部分我們會在下一堂課詳解。Show Git Log:顯示你專案的完整提交歷史。你的個人時光機。
5. 使用 .gitignore 檔案
如果你在專案中加入了一些工具產生的檔案,又不希望它們被誤加到儲存庫,可以把它們加入忽略清單。為此有個名為 .gitignore 的檔案。當專案裡有不需要納入版本控制的檔案(如暫存檔、日誌、密碼)時,它非常好用。
步驟 1. 先在專案目錄中建立你想忽略的檔案。例如 notes.txt。建立之後,如果 IDE 提示將其加入 Git,請按 Cancel。
步驟 2. 在「Project」視窗中用滑鼠右鍵點選剛剛建立的檔案。前往 Git --> Add to .gitignore --> Add to .gitignore。這個選項會把所選檔案加入專案根目錄的 .gitignore。
如果你的專案中還沒有 .gitignore,IDE 會提示建立它。請同意。
步驟 3. 你的 IDE 會自動把檔名加入 .gitignore。
把檔案加入 .gitignore 後,這些被忽略的檔案會以灰色或棕色顯示。當你嘗試提交變更時,這些檔案會被忽略。你可以把 .idea 資料夾加入忽略。
別忘了把 .gitignore 檔案本身也提交到儲存庫,並推送到 GitHub,讓所有專案成員都使用相同的忽略規則。
排除本機檔案:.git/info/exclude
除了供專案所有使用者共同使用的 .gitignore 外,Git 也提供在 .git/info/exclude 建立本機忽略規則的能力。這些規則不會被提交到儲存庫,只會對你本機的專案副本生效。
例如,用來忽略你的 IDE 生成、只對你自己有效且不該進版本控制的檔案,就很實用。
重要! 本機忽略規則只對你的本機儲存庫副本生效。
如果我已經提交了怎麼辦?
.gitignore 只會忽略新的、尚未被追蹤的檔案。如果你已經提交過某個檔案,它已在儲存庫歷史中,Git 仍會持續追蹤它,即便你把它加進 .gitignore。這種情況可以在終端機使用命令:git rm --cached <file>。不過關於它的細節需要另外再查閱。
.gitignore 的規則
在 .gitignore 檔案中,你可以指定 Git 應忽略的檔名與資料夾名稱樣式。
空白行會被忽略。若要新增註解,請以字元 # 作為該行的開頭。
樣式:
*— 代表任意數量的任意字元。例如,*.log會忽略所有副檔名為.log的檔案。/— 出現在樣式結尾時代表資料夾。例如,logs/會忽略logs資料夾的所有內容。!— 出現在行首時代表反轉規則。例如,你有*.log的規則,但想追蹤important.log,就新增一行!important.log。**— 匹配任意層級的巢狀資料夾。例如,**/temp會忽略任意層級中的temp資料夾。
.gitignore 檔案範例
# 編譯後的程式碼
/bin/
/obj/
# 暫存檔
*.tmp
*.swp
# 日誌
*.log
# IDE 產生的資料夾
.idea/
*.user
*.suo
# 虛擬環境與相依
/venv/
/node_modules/
現成範本
你不需要從零開始撰寫這些檔案。已有現成且經社群驗證的範本可用:
- GitHub 為不同語言與框架提供的
.gitignore集合:https://github.com/github/gitignore。 - gitignore.io — 可依你的技術組合產生
.gitignore的好用網站。
GO TO FULL VERSION