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 — 是專案在某個時刻的「快照」或已保存的狀態。把它想像成遊戲裡的存檔點:如果出問題可以回到這個點。每個 commit 有唯一的識別碼和描述變更的訊息。
gitGraph
commit id: "Initial commit"
commit id: "Add user authentication"
commit id: "Fix login button bug"
commit id: "Refactor database connection"
歷史提交。每個新的 commit 都建立在前一個之上,構成專案的時間線。
步驟 1. 做出更動。
如果你克隆的是新建的倉庫,它通常只包含一個檔案 — README.md
打開 README.md,加入你的專案描述。當你開始編輯時,IDE 會在專案面板把該檔案名稱標為 藍色。這表示檔案已被修改,但還沒被 Git 保存。IDE 會在你改動的地方顯示 綠色線條。
步驟 2. 打開 Commit 視窗。
IDE 左側有個 Commit 分頁。打開它你會看到所有準備保存的變更。對於第一次 commit,這個視窗特別重要。
我們來看看能看到些什麼:
- Changes: 這裡是已經被 Git 追蹤但被修改的檔案。在我們的例子中是我們剛編輯的
README.md,裡面加入了專案計畫。 - Unversioned Files: 這些是新檔案,Git 在專案資料夾內看到了它們,但還沒有開始追蹤。
你可能會問:要不要把所有這些系統檔案也加入倉庫?
好消息是,當我們在 GitHub 建倉庫時,通常會選擇一個 .gitignore 範本。這個檔案已經包含規則,告訴 Git 忽略不需要的資料夾或檔案。關於它我們會在課程末尾詳細講。
現在我們第一個 commit 的任務是把專案的主要檔案加入歷史,並寫好 commit 訊息。
步驟 3. 做出 commit。
點下 Commit 按鈕。完成!你已經在本地倉庫保存了一個「快照」。檔案會恢復成正常顏色。
3. 把變更發到 GitHub:Push
你的 commits 目前只存在你的電腦上。要和團隊分享或把它們保存在可靠地方,需要把它們發到遠端倉庫 GitHub。
sequenceDiagram
participant 本地倉庫 (你的電腦)
participant 遠端倉庫 (GitHub)
note over 本地倉庫 (你的電腦): 你已經做了一個或多個 commit。
它們只存在這裡。
本地倉庫 (你的電腦) ->> 遠端倉庫 (GitHub): git push (發送 commits)
note over 遠端倉庫 (GitHub): 你的 commits 被複製
並安全地保存在伺服器上。
步驟 1. 點 Push 按鈕。
在 IDE 右上角有個綠色向上的箭頭 —— 那是 Push 按鈕。點它。
步驟 2. 檢查並確認。
會打開一個視窗,顯示所有準備發送的 commits。這是最後一次確認你要發送的內容。點 Push。
如果一切成功,你會看到提示: Pushed commits to origin/main. Create pull request
步驟 3. 在 GitHub 檢查結果。
發送成功後打開你倉庫的 GitHub 頁面,你會看到你的變更已經出現。
4. Git 控制面板
在 IDE 裡有個專門的 Git 選單,在頂部工具列可以找到。這是你版本控制的操作中心。我們快速看幾個常用項目。
Commit: 打開之前講過的保存變更視窗。Push: 打開發送 commits 到 GitHub 的視窗。Update Project: 非常重要的功能。它會下載其他團隊成員的新變更(執行git pull)。每天工作前早上都按一下!Branches: 打開分支管理視窗。我們會在下一堂課詳細講分支。Show Git Log: 顯示專案的所有 commit 歷史。你的個人時間機器。
5. 使用 .gitignore 檔案
如果你在專案裡加入了一些系統檔案,不想讓它們意外提交到倉庫,可以把它們加入忽略清單。為此有個檔案叫 .gitignore。當專案裡有不該放到版本控制的檔案(例如暫存檔、log、密碼)時,這個檔案非常有用。
步驟 1. 先在專案目錄建立要忽略的檔案,例如 notes.txt。建立後如果 IDE 提示是否把它加入 Git,選 Cancel。
步驟 2. 在 Project 視窗對剛建立的檔案按右鍵。選擇 Git --> Add to .gitignore --> Add to .gitignore。這個選項會把選中的檔名加入專案根目錄下的 .gitignore。
如果你還沒有 .gitignore 檔,IDE 會提示你建立,接受即可。
步驟 3. IDE 會自動把檔名加入 .gitignore。
加入 .gitignore 後,被忽略的檔案會以灰色或褐色顯示。嘗試 commit 時這些檔案會被忽略。像 .idea 這類資料夾可以加入忽略清單。
別忘了把 .gitignore 本身也 commit 到倉庫並 push,這樣項目裡的所有人都會使用相同的忽略規則。
排除本地檔案:.git/info/exclude
除了專案級的 .gitignore(對所有參與者生效)之外,Git 還允許你在 .git/info/exclude 裡建立本地忽略規則。這些規則不會被提交到倉庫,只在你本地副本生效。
這對於忽略那些只在你環境中出現的 IDE 生成檔案很有用,這些檔案不應該進版本控制,但又只影響你自己。
重要! 本地忽略規則只對你本地的倉庫副本生效。
如果我已經 commit 了怎麼辦?
.gitignore 只會忽略尚未被追蹤的新檔案。如果你已經把某個檔案 commit 了,它已經在倉庫歷史中,Git 會繼續追蹤它,即便你後來把它加入 .gitignore。針對這類情況有個終端指令:git rm --cached <file>。這部分需要另外再學習。
.gitignore 規則
在 .gitignore 裡寫入檔名或資料夾的模式,Git 根據這些模式忽略對應的檔案與資料夾。
空行會被忽略。要寫註解請在行首加上 #。
模式範例:
*— 代表任意數量的任意字元。例如*.log會忽略所有副檔名為.log的檔案。/— 放在模式最後代表目錄。例如logs/會忽略整個logs資料夾的內容。!— 放在行首會反轉規則。例如,如果你有*.log規則,但想追蹤important.log,可以加一行!important.log。**— 匹配任意層級的巢狀資料夾。例如**/temp會忽略所有層級下名為temp的資料夾。
.gitignore 範例檔案
# Skompilirovanny kod
/bin/
/obj/
# Vremennye fajly
*.tmp
*.swp
# Logi
*.log
# Papki, sozdavaemye IDE
.idea/
*.user
*.suo
# Virtual'nye okruzhenija i zavisimosti
/venv/
/node_modules/
現成範本
你不需要從零開始寫這些規則。有社群驗證過的現成範本可以用:
- GitHub 上的
.gitignore收藏,針對不同語言和框架: https://github.com/github/gitignore。 - gitignore.io — 一個方便的網站服務,能根據你的技術棧生成
.gitignore。
GO TO FULL VERSION