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 init | git 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
但這樣會永久刪除所有的版本歷史紀錄。