介紹鮮為人知但功能強大的 Git 技術

大雄45發表於2022-11-07
導讀 儲藏(Stashing)是一種鮮為人知但功能強大的 Git 技術,即使您還沒有準備好提交它,它也能保證程式碼的安全。
介紹鮮為人知但功能強大的 Git 技術介紹鮮為人知但功能強大的 Git 技術

DBH2EW An image of landscape on late summer

Stashing 允許您保留對儲存庫所做更改的副本,而無需建立提交。

如果您正在切換上下文,這非常有用,尤其是當您在同一個專案的不同錯誤或任務之間來回切換時。

git stash 的基本操作

在處理並行工作時,您可以使用 git stash 來簡化您的工作流程。想象一下,您正在處理一項長期執行的任務,並在本地工作副本中進行了更改。然後,出現緊急情況,您必須立即處理。

stashing 更改的標準工作流程是:
  1. 進行本地更改

  2. 儲存本地更改

  3. <其他作品>

  4. 重新應用隱藏的更改

當您使用git stash [push] 儲存更改時,git 將重置為 HEAD。然後,您可以繼續處理您需要的任何事情,提交到儲存庫,就好像您從未進行過原始更改一樣。

一旦你首先完成了任何讓你偏離軌道的事情,使用git stash pop應用你的更改並將它們從儲存中刪除。您還可以使用 git stash apply 應用您的更改並將它們儲存在儲存中。如果您想快速將更改應用到多個分支,這可能很有用。

使用多個 Stash

如果您真的很忙,您可能會發現自己同時處理多項任務,並且您可能需要將它們全部隱藏起來。別擔心, git stash 就是為此而構建的。

每次使用 git stash push 時,都會儲存另一組更改。使用git stash list顯示您已隱藏的所有內容。你會看到有點像這樣的東西:

stash@{0}: WIP on main: 2fba62e first commit
stash@{1}: WIP on main: 2fba62e first commit

這些訊息不是很有用,但是您可以透過在儲存時新增自定義訊息來為自己留下一些線索:

git stash push -m "third"

當您現在列出時,您會看到您的自定義訊息:

stash@{0}: On main: third
stash@{1}: WIP on main: 2fba62e first commit
顯示記錄變更的差異

要找出儲存中發生的變化,請使用 git stash show。如果沒有進一步的引數,它將顯示最新儲存的差異摘要,如下所示:

$ git stash show
README.md | 3 +++
1 file changed, 3 insertions(+)

您還可以傳遞儲存 id 來查詢特定條目:

git stash show stash@{0}
從 Stash 建立一個分支

您可能會認為儲存中的更改非常重要,以至於它們應該放在自己的分支中。如果是這樣,請使用分支 從儲存中建立一個新分支:

git stash branch

同樣,預設情況下這將適用於最近的儲存,但如果需要,您可以提供儲存 id。Git 從儲存庫中的同一點建立新分支作為儲存。然後它將儲存中的更改應用到您的工作副本。

清理 Stash

沒有“git unstash”命令。如果要刪除儲存條目,請使用 drop:

git stash drop

同樣,這預設為最新的,但您可以提供一個儲存 ID。如果您決定要擺脫 Stash 的所有內容,請使用以下命令:

git stash clear
使用 git stash 進行臨時輕量級提交

Git 儲存庫遠沒有完整儲存庫強大。但是它們本身仍然提供許多有用的功能。如果您經常發現自己需要在工作中切換分支,那就請使用 stashes。

Stashing 只是 git 的一小部分,它是一個提供很多東西的程式。

原文來自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2905070/,如需轉載,請註明出處,否則將追究法律責任。

相關文章