日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

git stash的用法

發布時間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git stash的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在使用Git管理項目工程的時候,遇到了很多問題,也學習到了很多關于Git常見使用的技巧,下面就其中關于Git Stash的用法和大家分享下。
首先,簡單介紹下Git Stash命令的用法,詳細的用法在man文檔中有相關介紹,下面我來說明常見的使用。
git stash: 備份當前的工作區的內容,從最近的一次提交中讀取相關內容,讓工作區保證和上次提交的內容一致。同時,將當前的工作區內容保存到Git棧中。
git stash pop: 從Git棧中讀取最近一次保存的內容,恢復工作區的相關內容。由于可能存在多個Stash的內容,所以用棧來管理,pop會從最近的一個stash中讀取內容并恢復。
git stash list: 顯示Git棧內的所有備份,可以利用這個列表來決定從那個地方恢復。
git stash clear: 清空Git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。
關于Git Stash的詳細解釋,適用場合,這里做一個說明:

使用git的時候,我們往往使用branch解決任務切換問題,例如,我們往往會建一個自己的分支去修改和調試代碼,?如果別人或者自己發現原有的分支上有個不得不修改的bug,我們往往會把完成一半的代碼?commit提交到本地倉庫,然后切換分支去修改bug,改好之后再切換回來。這樣的話往往log上會有大量不必要的記錄。其實如果我們不想提交完成一半或者不完善的代碼,但是卻不得不去修改一個緊急Bug,那么使用'git?stash'就可以將你當前未提交到本地(和服務器)的代碼推入到Git的棧中,這時候你的工作區間和上一次提交的內容是完全一樣的,所以你可以放心的修?Bug,等到修完Bug,提交到服務器上后,再使用'git?stash?apply'將以前一半的工作應用回來。也許有的人會說,那我可不可以多次將未提交的代碼壓入到棧中?答案是可以的。當你多次使用'git?stash'命令后,你的棧里將充滿了未提交的代碼,這時候你會對將哪個版本應用回來有些困惑,'git?stash?list'命令可以將當前的Git棧信息打印出來,你只需要將找到對應的版本號,例如使用'git?stash?apply?stash@{1}'就可以將你指定版本號為stash@{1}的工作取出來,當你將所有的棧都應用回來的時候,可以使用'git?stash?clear'來將棧清空。
在這里順便提下git?format-patch?-n?,?n是具體某個數字,?例如?'git?format-patch?-1'?這時便會根據log生成一個對應的補丁,如果?'git?format-patch?-2'?那么便會生成2個補丁,當然前提是你的log上有至少有兩個記錄。


看過上面的信息,就可以知道使用場合了:當前工作區內容已被修改,但是并未完成。這時Boss來了,說前面的分支上面有一個Bug,需要立即修復。可是我又不想提交目前的修改,因為修改沒有完成。但是,不提交的話,又沒有辦法checkout到前面的分支。此時用Git Stash就相當于備份工作區了。然后在Checkout過去修改,就能夠達到保存當前工作區,并及時恢復的作用

?

原文:http://www.cppblog.com/deercoder/archive/2011/11/13/160007.aspx

總結

以上是生活随笔為你收集整理的git stash的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。