Git 初始化:如何初始化和設置 Git 存儲庫

是否曾經不小心刪除文件或覆蓋了代碼而無法恢復?沒有版本控制,這些錯誤可能會造成災難。這就是 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 – 透過高級分支、合併和衝突解決技術來提升您的技能。
  • GitHub 基礎 – 學習如何無縫地將 Git 與 GitHub 集成,用於協作項目。

愉快地編碼 – 祝您利用 Git 建立可靠、創新的項目!

Source:
https://www.datacamp.com/tutorial/git-init