是否曾經不小心刪除文件或覆蓋了代碼而無法恢復?沒有版本控制,這些錯誤可能會造成災難。這就是 git init
的用武之地——它將你的專案資料夾轉變為 Git 倉庫,確保每一次變更都是可追蹤和可恢復的。
在本教程中,我將向你展示如何設置 Git,分享我旅程中的個人建議,並幫助你從一開始就創建一個強健的工作流程。
什麼是 Git Init?
git init
命令啟動了你的版本控制之旅。當你執行此命令時,Git 會在你的專案目錄中創建一個隱藏的 .git
資料夾,該資料夾存儲配置數據、提交歷史和所有跟蹤變更所需的元數據。
隨著每次修改的記錄,你可以自信地進行分支、合併和協作——知道你的專案完整歷史始終只需一個命令即可獲得。
作者提供的圖片
如何使用 Git Init
在深入討論高級主題之前,了解如何在實踐中使用 git init
是至關重要的。
git init 的基本用法
按照以下步驟從頭開始創建一個新的 Git 存儲庫:
- 打開您的終端:啟動您偏好的命令行界面。
- 切換到您的項目目錄:
cd /path/to/your/project
這將把您當前的文件夾更改為您想要追蹤的文件夾。
- 初始化存儲庫:
git init
執行此命令後,將創建一個隱藏的 .git
文件夾。該文件夾存儲了Git的所有跟踪信息。
- 驗證存儲庫狀態:
git status
在此階段,Git已設置但未追蹤任何文件。
初始化具有現有項目的存儲庫
對於尚未進入版本控制的專案,您可以按照以下方式初始化Git並開始跟蹤變更:
- 進入您的專案目錄:
cd /path/to/your/project
- 將專案轉換為Git存儲庫:
git init
如前所述,上述命令會創建隱藏的.git
文件夾,從而啟用Git跟蹤。
- 將您的文件加入暫存區:由於
git init
不會自動跟蹤文件,因此請使用以下命令添加:
git add .
- 提交您的文件:運行以下命令保存初始快照:
git commit -m "Initial commit"
這個過程將將一個未受管理的項目轉換為具有完整版本歷史的項目,準備好進行新的開發和協作。
配置 Git(如果需要)
如果遇到“作者身份未知”錯誤,這意味著 Git 不知道您是誰。要修復它,請配置您的用戶身份:
- 設置 Git 用戶信息:
git config --global user.email "[email protected]" git config --global user.name "Your Name"
使用--global
命令可以將這些設置應用於您機器上的所有存儲庫。省略這個命令將為當前存儲庫設置用戶身份。
- 驗證您的配置:
git config --global user.email git config --global user.name
- 重試提交:
git commit -m "First Commit"
當我剛開始使用Git時遇到了這個錯誤—設置我的身份解決了它。
最初的Git提交在PowerShell中成功運行。
連接到遠程存儲庫
一旦您在本地初始化了Git存儲庫,您可能想要將其備份或通過連接到遠程存儲庫(例如GitHub、GitLab、Bitbucket)與他人協作。
- 添加遠端倉庫:要將您本地的倉庫連接到遠端倉庫,請使用:
git remote add origin <repository-url>
將<repository-url>
替換為您遠端倉庫的URL。 origin
是遠端倉庫的默認別名,但您也可以使用任何名稱。
- 您可以通過以下方式驗證連接:
git remote -v
- 將更改推送到遠端倉庫:
# 推送第一個提交並跟蹤遠端分支 git push -u origin $(git branch --show-current) # 適用於 'main' 或 'master'
上述命令將當前分支推送並設置跟踪遠程分支。
如果您使用的是不支持 $(git branch --show-current)
的舊版 Git,請使用:
git push -u origin main # 或者根據您的默認分支為 'master'
在繼續進行項目開發時,當與團隊合作時,您需要從不同分支合併更改。通過這個 Git 合併教程 學習如何有效處理合併。
身份驗證和訪問
如果要將代碼推送到GitHub、GitLab或Bitbucket,您可能需要進行身份驗證。根據您的設置,您可以:
- 使用SSH 金鑰 代替 HTTPS 認證(建議用於安全性):
git remote set-url origin [email protected]:your-username/your-repo.git
- 在使用 HTTPS 時,使用個人存取權杖(PAT) 代替密碼。對於 GitHub,請用權杖取代密碼:
git push https://[email protected]/your-repo.git
連接到遠端存儲庫對我來說是一個轉折點——它確保我的本地工作已經安全備份並準備好進行協作。而且,這讓我對版本控制充滿信心,知道即使我的本地機器故障,我的歷史記錄也得以保存。
使用 Git Init 的進階選項
對於希望自定義 Git 設置的用戶來說,進階選項提供了額外的靈活性。
初始化裸倉庫
如果您正在設置一個 Git 伺服器,讓開發人員推送他們的更改但不直接編輯文件,您需要一個裸倉庫。裸倉庫省略了工作目錄,只包含版本控制數據。它通常用於遠端倉庫:
git init --bare <repository-name>
裸倉庫通常用於 GitOps 工作流程中,在這些工作流程中,基礎設施和應用程序部署是通過 Git 進行管理的。如果您有興趣了解 GitOps 如何自動化和簡化軟件交付,請查看這份 GitOps 指南。
使用特定配置初始化
如果您需要自定义 Git 钩子或配置文件,请从头开始使用自定义模板进行初始化:
git init --template=<template-directory>
我曾经使用过自定义模板来自动加载必要的钩子,从而简化了我们团队的部署流程。
使用 Git Init 的最佳实践
开始时正确使用 Git 可以节省您未来的时间和麻烦。
组织项目结构
在运行 git init
之前,将您的文件组织成一个合乎逻辑的文件夹结构——分开代码、文档和资源。
在一個我接手的項目中,來自多個子項目的文件混在一起,導致合併衝突和混亂。通過將所有東西重新組織到清晰定義的文件夾中,重新初始化存儲庫,並設置正確的 .gitignore
,工作流程顯著改善。
早期添加一個 .gitignore
文件
在初始化存儲庫後立即創建一個 .gitignore
文件,以防止跟蹤不必要的文件:
touch .gitignore
然後,編輯它以包含如下規則:
# 忽略依賴文件夾和日誌文件 node_modules/ *.log .DS_Store # macOS 系統文件 Thumbs.db # Windows 系統文件
這一步讓我免於臃腫的提交歷史和潛在的未來衝突。
有關配置 .gitignore
文件的詳細指南,請查看 這個 gitignore 教程。
經常提交
進行小而頻繁的提交並附上清晰的消息,有助於建立詳細的項目歷史,並簡化除錯和協作。
排解常見的 Git 初始化問題
即使有適當的計畫,問題也可能會出現。以下是一些常見的問題及其解決方法。
錯誤地在錯誤的目錄中初始化
問題: 您在錯誤的資料夾中運行了 git init
,現在擁有了一個不需要的 Git 倉庫。
解決方案:
- 移除 Git 儲存庫:
rm -rf .git
> 警告: 此操作將刪除該儲存庫的所有版本歷史。請在執行此命令之前確保您在正確的資料夾中!
然後,導航到正確的目錄並再次運行 git init
。
我曾經犯過這個錯誤幾次,所以請仔細檢查您的工作目錄以避免這種情況。
處理未追蹤的檔案
問題:執行git init
後,Git沒有追蹤您的文件。執行git status
顯示:
No commits yet Untracked files: (use "git add <file>..." to include in what will be committed)
解決方案:
- 檢查文件是否真的未被追蹤:
git status
如果您的文件出現在未追蹤文件下,Git看到它們但尚未追蹤它們。
- 然後,使用以下命令將必要的文件加入暫存區:
git add <file-name>
- 提交文件:
git commit -m "Initial commit"
定期檢查狀態可確保不會遺漏重要事項。
如果git status
未顯示任何文件,請檢查您的項目是否包含可能會排除重要文件的.gitignore
文件。
結論
精通git init
是構建可靠版本控制系統、促進協作和高效項目管理的至關重要的第一步。遵循此指南——從初始化和組織存儲庫到解決常見問題——來建立流暢、高效的工作流程。
從小開始—使用git init
初始化測試項目,並嘗試階段、提交和推送變更。越早掌握 Git 的基礎知識,您的工作流程就會變得更高效!如果您想更深入地學習 Git 技能,請查看這些 DataCamp 課程:
愉快地編碼 – 祝您利用 Git 建立可靠、創新的項目!