Git 操作大集合:常用指令 CheatSheet 總整理
常用 Git 指令
| 指令 | 功能 |
|---|---|
git init | 初始化 Git 儲存庫 |
git add | 將檔案加入 Git 的暫存區 |
git commit | 提交檔案到 Git 儲存庫 |
git pull | 從遠端儲存庫下載最新的資訊並合併到本地端 |
git push | 將本地端的提交推送到遠端儲存庫 |
git clone | 複製遠端儲存庫到本地端 |
git status | 檢視目前 Git 儲存庫的狀態 |
git diff | 比較檔案與 Git 儲存庫之間的差異 |
git log | 檢視 Git 儲存庫的歷史記錄 |
git branch | 列出、建立或切換分支 |
git checkout | 切換到指定的分支或提交 |
git merge | 合併分支或提交 |
git rebase | 將一個分支的修改應用到另一個分支上,以獲得更線性的提交歷史 |
git reset | 回復到指定的提交或狀態 |
git revert | 建立一個反向提交,撤銷之前的提交 |
git stash | 將當前的修改藏起來,以便稍後套用 |
git fetch | 從遠端儲存庫下載最新的資訊 |
git remote | 管理遠端儲存庫 |
git config | 設定 Git 的環境變數 |
git add
Toggle me!
| 指令 | 功能 |
|---|---|
git add . | 將所有修改過的檔案和新增的檔案加入暫存區,不包括已經被刪除的檔案。 |
git add <file> | 將指定的檔案加入暫存區。例如:git add index.html。 |
git add <directory> | 將指定的目錄加入暫存區。例如:git add images/。 |
git add -u | 將所有修改過的檔案和已經被刪除的檔案加入暫存區,但不包括新增的檔案。 |
git commit
Toggle me!
| 指令 | 功能 |
|---|---|
git commit -m "<message>" | 將暫存區中的所有修改過的檔案和新增的檔案提交到 Git 儲存庫中,並加上提交訊息。例如:git commit -m "新增首頁"。 |
git commit -a -m "<message>" | 將所有修改過的檔案、新增的檔案和已經被刪除的檔案提交到 Git 儲存庫中,並加上提交訊息。例如:git commit -a -m "更新 README.md"。 |
git commit --amend | 將最後一個提交的訊息修改為新的提交訊息,並且將當前的暫存併入最後一次的 Commit。例如:git commit --amend -m "修改提交訊息"。 |
git commit --allow-empty -m "<message>" | 建立一個空的提交訊息,這個指令可以用於建立沒有任何檔案修改的提交,例如:git commit --allow-empty -m "初始化專案"。 |
git pull
Toggle me!
| 指令 | 功能 |
|---|---|
git pull | 從遠端儲存庫中取回最新的版本並合併到當前分支 |
git pull --rebase | 等同於 git fetch + git rebase 當遠端有新 commit 尚未同步到本地,從遠端儲存庫中取回最新的版本,並以 rebase 取代預設的 merge 合併,避免產生合併提交 |
git pull <remote> <branch> | 從指定的遠端儲存庫和分支中取回最新的版本並合併到當前分支 |
git pull --no-commit <remote> <branch> | 從指定的遠端儲存庫和分支中取回最新的版本並合併到當前分支,但不會自動產生一個新的提交 |
git pull --rebase <remote> <branch> | 從指定的遠端儲存庫和分支中取回最新的版本,並以 rebase 取代預設的 merge 合併,避免產生合併提交 |
git push
Toggle me!
| 指令 | 功能 |
|---|---|
git push | 將本地分支的提交推送到遠端分支 |
git push <remote> | 將當前本地分支的提交推送到指定的遠端分支 |
git push <remote> <branch> | 將指定的本地分支的提交推送到指定的遠端分支 |
git push --force | 強制推送本地分支的提交到遠端分支 |
git push --tags | 推送本地所有標籤到遠端分支 |
git push --set-upstream <remote> <branch> | 將本地分支的提交推送到指定的遠端分支,並且設置遠端分支為本地分支的遠端上游分支。 |
git clone
Toggle me!
| 指令 | 功能 |
|---|---|
git clone <repository> | 從遠端複製一個 Git 儲存庫到本地端 |
git clone <repository> <directory> | 從遠端複製一個 Git 儲存庫到本地端指定的資料夾 |
git clone --branch <branch> <repository> | 從遠端複製指定分支的 Git 儲存庫到本地端 |
git clone --depth <depth> <repository> | 從遠端複製指定深度的 Git 儲存庫到本地端(僅複製部分歷史記錄) |
git clone --recursive <repository> | 從遠端複製一個 Git 儲存庫到本地端,並遞迴複製其所有子模組 |
git clone --recurse-submodules <repository> | 從遠端複製一個 Git 儲存庫到本地端,並遞迴複製其所有子模組(同 --recursive) |
git status
Toggle me!
| 指令 | 功能 |
|---|---|
git status | 顯示當前工作目錄和暫存區的狀態,包括哪些檔案已修改、哪些檔案已經被加入暫存區,以及哪些檔案還沒有被追蹤。 |
git status -s | 以簡潔的方式顯示當前工作目錄和暫存區的狀態,包括哪些檔案已修改、哪些檔案已經被加入暫存區,以及哪些檔案還沒有被追蹤。 |