git init 與 git clone

要開始使用 Git 管理專案,你有兩種方式:用 git init 建立新的 repository,或用 git clone 複製現有的 repository。

git init - 初始化新的 Repository

git init 會在當前目錄建立一個新的 Git repository。

基本用法

# 進入專案目錄
cd my-project

# 初始化 Git
git init

執行後你會看到:

Initialized empty Git repository in /path/to/my-project/.git/

這會在目錄中建立一個隱藏的 .git 資料夾,裡面包含 Git 需要的所有檔案。

在新目錄初始化

你也可以同時建立目錄並初始化:

git init my-new-project

這會建立 my-new-project 資料夾並初始化 Git。

指定預設分支名稱

git init --initial-branch=main
# 或簡寫
git init -b main

初始化後的下一步

# 1. 建立一些檔案
echo "# My Project" > README.md

# 2. 加到暫存區
git add README.md

# 3. 第一次 commit
git commit -m "Initial commit"

git clone - 複製現有的 Repository

git clone 用來複製一個遠端的 repository 到你的電腦。

基本用法

git clone <repository-url>

例如:

# 使用 HTTPS
git clone https://github.com/username/repo-name.git

# 使用 SSH
git clone git@github.com:username/repo-name.git

這會建立一個和 repository 同名的資料夾,並下載所有檔案和歷史紀錄。

指定目錄名稱

git clone https://github.com/username/repo-name.git my-folder

這會把 repository 複製到 my-folder 目錄。

複製到當前目錄

git clone https://github.com/username/repo-name.git .

使用 . 會把內容直接複製到當前目錄(目錄必須是空的)。

只複製最新版本(淺複製)

如果 repository 很大,歷史紀錄很長,可以只複製最新的一個 commit:

git clone --depth 1 https://github.com/username/repo-name.git

這叫做 shallow clone,適合只想取得程式碼、不需要歷史紀錄的情況。

複製特定分支

git clone --branch develop https://github.com/username/repo-name.git
# 或簡寫
git clone -b develop https://github.com/username/repo-name.git

git init vs git clone

git initgit clone
用途建立新的 repository複製現有的 repository
適用情境從零開始的新專案加入現有專案、下載開源專案
遠端連結沒有,需要另外設定自動設定好 origin

實際範例

範例一:開始一個新專案

# 建立專案目錄
mkdir my-website
cd my-website

# 初始化 Git
git init

# 建立檔案
echo "<!DOCTYPE html>" > index.html
echo "node_modules/" > .gitignore

# 第一次 commit
git add .
git commit -m "Initial commit"

範例二:參與開源專案

# 複製專案
git clone https://github.com/facebook/react.git

# 進入專案目錄
cd react

# 查看狀態
git status

# 查看分支
git branch -a

範例三:複製自己的專案到新電腦

# 複製專案
git clone git@github.com:myusername/my-project.git

# 進入目錄
cd my-project

# 安裝依賴(如果是 Node.js 專案)
npm install

# 開始開發

常見問題

.git 資料夾是什麼?

.git 是 Git 儲存所有版本控制資訊的地方,包括:

  • 所有的 commit 歷史
  • 分支資訊
  • 設定檔
  • 暫存區資料
千萬不要手動修改或刪除 .git 資料夾內的檔案,否則可能會損壞你的 repository。

如何移除 Git 版本控制?

如果你不想再用 Git 管理某個專案,只要刪除 .git 資料夾:

rm -rf .git

但這樣會永久刪除所有的版本歷史紀錄。