Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

新手指南:理解 Git 中的 git add 與 git stash

最後更新:2024年12月25日基礎概念

Git 是一個強大的版本控制工具,但對於初學者來說,它的一些命令可能不太容易理解,例如 git add 和 git stash。

本文將帶你一步步掌握它們的作用、使用場景,以及兩者之間的差異,幫助你更高效地管理版本控制工作。


git add:提交的第一步

git add 的作用是將文件的變更(或新增文件)添加到 暫存區(staging area),作為提交(git commit)的準備步驟。

特點

  • 選擇性提交:你可以選擇只添加某些文件。
  • 不會直接提交變更:變更會先停留在暫存區中,直到你執行 git commit。
  • 為提交組織變更:方便你有條理地進行代碼提交。

範例

# 添加文件到暫存區
git add file1.txt file2.txt

# 提交變更
git commit -m "Add changes for file1 and file2"

在此過程中,git add 是必要的一步,它明確地將指定的文件變更納入到提交流程。


git stash:臨時存放變更

當你需要臨時保存當前的工作狀態(未完成的變更)而不想提交時,git stash 是你的最佳選擇。

它將當前工作目錄和暫存區的變更保存到 stash 堆疊 中,並恢復工作目錄到乾淨狀態。

特點

  • 保存未完成的工作:幫助你在不提交的情況下暫存變更。
  • 不影響分支歷史:變更不會進入提交歷史。
  • 支持多次存儲:可以將多次暫存的內容存入堆疊,按需恢復。

範例

# 將當前變更存入 stash
git stash

# 切換到其他分支
git checkout other-branch

# 修復完問題後回到原分支
git checkout original-branch

# 恢復暫存的變更
git stash apply

兩者的差異

雖然 git add 和 git stash 都涉及變更的處理,但它們的用途和影響範圍完全不同:

功能git addgit stash
目的為提交準備變更臨時存儲未提交的變更
影響範圍暫存區中的指定文件工作目錄和暫存區中的所有變更
是否提交變更否,需要手動執行 git commit否,不進行提交
應用場景準備提交或選擇性提交臨時保存變更,用於切換分支或修復問題
歷史影響添加的內容會成為下一次提交的一部分不會影響分支歷史
git add為提交準備變更
git stash臨時存儲未提交的變更
git add暫存區中的指定文件
git stash工作目錄和暫存區中的所有變更
git add否,需要手動執行 git commit
git stash否,不進行提交
git add準備提交或選擇性提交
git stash臨時保存變更,用於切換分支或修復問題
git add添加的內容會成為下一次提交的一部分
git stash不會影響分支歷史

使用場景解析:為什麼需要 git stash?

以下是一些典型的使用場景,說明為什麼 git stash 是一個不可或缺的工具:

臨時切換分支處理其他任務

假設你正在開發一個新功能,但此時需要切換到另一個分支修復緊急問題,而又不想提交未完成的代碼:

# 將當前未完成的變更存入 stash
git stash

# 切換到其他分支修復問題
git checkout main

# 修復完畢後回到原分支
git checkout feature

# 恢復變更
git stash apply

測試代碼或試驗新功能

在測試某些改動時,你可以先將當前變更存入 stash,試驗結束後再決定是否恢復:

# 存儲當前工作
git stash

# 試驗其他代碼
# ...

# 恢復原始變更
git stash apply

保持工作目錄乾淨

當你需要檢查其他功能或執行操作,而不希望當前未提交的變更影響這些操作時,可以使用 git stash。


總結與最佳實踐

git add 的作用

  • 為提交準備變更,選擇性地將文件添加到暫存區。
  • 適合組織你的提交內容,確保提交代碼的清晰性。

git stash 的作用

  • 臨時存放變更,讓你在不提交的情況下自由切換上下文。
  • 適合處理未完成的工作、切換分支或試驗新功能。

簡單記住

  • 當你準備提交代碼時,使用 git add。
  • 當你臨時存放未完成工作時,使用 git stash。

通過靈活使用這兩個命令,你將能更高效地管理你的 Git 工作流!

目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

基礎概念

目錄

  • git add:提交的第一步
  • 特點
  • 範例
  • git stash:臨時存放變更
  • 特點
  • 範例
  • 兩者的差異
  • 使用場景解析:為什麼需要 git stash?
  • 臨時切換分支處理其他任務
  • 測試代碼或試驗新功能
  • 保持工作目錄乾淨
  • 總結與最佳實踐
  • git add 的作用
  • git stash 的作用
  • 簡單記住