LoGravel
Git

Git 實戰指令-為我程式人生做紀錄

相信大多數的人都知道 Git 是什麼,輸入關鍵字也都出現千篇一律的介紹文章,所以這邊就不再贅述一連串的廢話,此篇文章只做指令說明及使用時機。

更新於 發布於 閱讀時間 4 分鐘
Git 實戰指令-為我程式人生做紀錄

雖然現在有 Claude Code、Codex、Github Copilot 等多種 AI 協作工具,可以透過 Prompt 協助完成 Git 操作,甚至自動生成 Commit message 讓你無須思考要怎麼下 Commit,或者是 restore、reset 的撤銷變更。

不過在這一塊,筆者我還是偏向手動操作的習慣,確保每一次的變更都有清楚的掌握,當然也希望未來自己可以更放手的去給 AI 完成。

git init

初始化 Git repository(建立 .git 版本控制目錄),需在專案 root 操作。

git init

git add

添加檔案到變更暫存區,可分為全部添加及指定路徑添加。

當前目錄與子目錄

git add .

指定路徑

git add <path>

git commit

將變更暫存區提交一個版本紀錄,並說明本次提交操作及更動方向。

-m 是 message 縮寫,接續在 commit 後面可以省略進入 editor 裡編輯訊息

git commit -m <message>

git push

將本地端的 commit 推送到遠端 repository,需先設定好遠端 repository 的 URL。

  • remote:remote 是 repository 的名稱,通常預設為 origin。
  • branch:branch 是分支的名稱,通常會是 main 或當前功能如 feature/xxx 的規則名稱。
git push <remote> <branch>

git clone

從遠端 repository 下載一份到本地端,會自動建立與 repository 同名的資料夾,並將遠端 repository 的相關檔案下載到該資料夾中。

git clone <repository-url>

git status

查看目前 repository 狀態,會顯示哪些檔案已做更改,哪些檔案已添加到站存區。

git status

git log

查看 commit 歷史紀錄,會顯示每次的 commit ID、作者、日期、commit message 資訊。

git log

git branch

創建分支名稱使用,一般在開發上都會用到創建分支的操作。

git branch <branch-name>

刪除分支

用於將指定分之名稱刪除使用,需先切換到其他分支才可以刪除。

  • -d 是安全刪除分支的參數,會檢查是否有未合併的變更,如果有則不會刪除分支,需先合併後才能刪除。(推薦使用)
  • -D 是強制刪除分支的參數,會忽略未合併的變更,直接刪除分支。(較不推薦使用)
git branch -d <branch-name>

git checkout

切換分支使用,當有多個分支時,可以使用此指令切換分支開發。

git checkout <branch-name>

創建分支並切換

加入 -b 參數可以在創建分支過程中同時切換到該分支。

git checkout -b <branch-name>

git fetch

從遠端 repository 下載最新的 commit 紀錄,但不會自動合併到當前分支,需要手動執行 git merge 操作。

git fetch <remote-name>

git merge

將當前分支內容與指定分支內容合併,通常會在當前分支開發完畢後,將當前內容合併到 main 分支上。

git merge <branch-name>

git pull

從遠端 repository 下載最新 commit 紀錄,並且自動合併到當前分支,等同於 git fetch + git merge 操作。

git pull <remote-name> <branch-name>

git reset

還原還本,一個 ^ 是還原一個版本,以此類推,還原後的版本會變成 uncommitted 的狀態。

git reset HEAD^

git restore

還原未加入暫存區的變更,會將指定檔案或路徑中的檔案,還原到最後一次 commit 的狀態,等同於放棄對檔案的修改。

git restore <file-path>
git restore .

git restore --staged

還原已加入暫存區的變更,會將指定檔案或路徑中的檔案,從暫存區中移除,但不會刪除對檔案的修改,等同於將檔案從暫存區中撤銷。

git restore --staged <file-path>

git stash

檔案暫存

將當前開發檔案暫存起來,需先將檔案 git add 添加到暫存區,然後執行 git stash 就會將當前變更的檔案暫存起來。

git stash push -m <message>

git remote

查看遠端 repository 的名稱,通常為 origin。

git remote

git diff

--shortstat

查看已加入暫存區的變更。會顯示變更幾支檔案,以及變更的行數。

git diff --staged --shortstat