git stash "本地代碼不見了"

前言

由于剛開始對(duì)git stash命令理解不透徹,誤以為代碼不見了齐唆,所以記錄一下git stash的使用以及過程中遇到的坑??(stash文件和本地UserInterfaceState.xcuserstate沖突贷腕,無法stash pop)

git stash的應(yīng)用場(chǎng)景

  • 當(dāng)正在dev分支上開發(fā)某個(gè)項(xiàng)目,這時(shí)項(xiàng)目中出現(xiàn)一個(gè)bug,需要緊急修復(fù)尘应,但是正在開發(fā)的內(nèi)容只是完成一半,還不想提交吼虎,這時(shí)可以用git stash命令將修改的內(nèi)容保存至堆棧區(qū)犬钢,然后順利切換到hotfix分支進(jìn)行bug修復(fù),修復(fù)完成后思灰,再次切回到dev分支玷犹,從堆棧中恢復(fù)剛剛保存的內(nèi)容

  • 由于疏忽,本應(yīng)該在dev分支開發(fā)的內(nèi)容洒疚,卻在master上進(jìn)行了開發(fā)歹颓,需要重新切回到dev分支上進(jìn)行開發(fā),可以用git stash將內(nèi)容保存至堆棧中拳亿,切回到dev分支后晴股,再次恢復(fù)內(nèi)容即可

總的來說,git stash命令的作用就是將目前還不想提交的但是已經(jīng)修改的內(nèi)容進(jìn)行保存至堆棧中肺魁,后續(xù)可以在某個(gè)分支上恢復(fù)出堆棧中的內(nèi)容电湘。這也就是說,stash中的內(nèi)容不僅僅可以恢復(fù)到原先開發(fā)的分支鹅经,也可以恢復(fù)到其他任意指定的分支上寂呛。git stash作用的范圍包括工作區(qū)和暫存區(qū)中的內(nèi)容,也就是說沒有提交的內(nèi)容都會(huì)保存至堆棧中瘾晃。

命令

git stash 或 git stash save ""
執(zhí)行g(shù)it stash前目錄結(jié)構(gòu)

執(zhí)行g(shù)it stash后目錄結(jié)構(gòu)

可以看到test.swift文件不見了贷痪,git stash 能夠?qū)⑺形刺峤坏男薷模üぷ鲄^(qū)和暫存區(qū))保存至堆棧中,用于后續(xù)恢復(fù)當(dāng)前工作目錄

git stash list
rhp$ git stash list
stash@{0}: WIP on thirdIss: 0624f25 刪除stash命令測(cè)試文件
rhpdembp:ToyStory rhp$ 

查看當(dāng)前stash中的內(nèi)容

git stash pop
rhpdembp:ToyStory rhp$ git stash pop
On branch thirdIss
Your branch is up to date with 'origin/thirdIss'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   ToyStory.xcodeproj/project.pbxproj

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    test.swift

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (d46cdf62251c21e5eceffbf092c49fb60ed9a501)
rhpdembp:ToyStory rhp$ 

這時(shí)候會(huì)看到test.swift文件恢復(fù)了蹦误,git stash pop將當(dāng)前stash中的內(nèi)容彈出劫拢,并應(yīng)用到當(dāng)前分支對(duì)應(yīng)的工作目錄上肉津。
注:該命令將堆棧中最近保存的內(nèi)容刪除(棧是先進(jìn)后出)

git stash apply

將堆棧中的內(nèi)容應(yīng)用到當(dāng)前目錄,不同于git stash pop舱沧,該命令不會(huì)將內(nèi)容從堆棧中刪除妹沙,也就說該命令能夠?qū)⒍褩5膬?nèi)容多次應(yīng)用到工作目錄中,適應(yīng)于多個(gè)分支的情況熟吏。

git stash drop + 名稱

從堆棧中移除某個(gè)指定的stash

git stash clear

清除堆棧中的所有內(nèi)容

git stash show

查看堆棧中最新保存的stash和當(dāng)前目錄的差異

git stash show -p

查看堆棧中最新保存的stash和當(dāng)前目錄的差異的詳細(xì)內(nèi)容

git stash branch

從最新的stash創(chuàng)建分支距糖。
應(yīng)用場(chǎng)景:當(dāng)儲(chǔ)藏了部分工作,暫時(shí)不去理會(huì)牵寺,繼續(xù)在當(dāng)前分支進(jìn)行開發(fā)悍引,后續(xù)想將stash中的內(nèi)容恢復(fù)到當(dāng)前工作目錄時(shí),如果是針對(duì)同一個(gè)文件的修改(即便不是同行數(shù)據(jù))帽氓,那么可能會(huì)發(fā)生沖突趣斤,恢復(fù)失敗,這里通過創(chuàng)建新的分支來解決杏节』I可以用于解決stash中的內(nèi)容和當(dāng)前目錄的內(nèi)容發(fā)生沖突的情景典阵。 發(fā)生沖突時(shí)奋渔,需手動(dòng)解決沖突。

恢復(fù)stash內(nèi)容的坑:

git stash 后切換到其它分支再回來, 因?yàn)镚it 沒有設(shè)置忽略UserInterfaceState.xcuserstate文件壮啊,(UserInterfaceState.xcuserstate這個(gè)文件一直在自動(dòng)更新嫉鲸,即使我的代碼沒改變,提交時(shí)也有它歹啼。后來百度到這是Xcode自帶的文件玄渗,不應(yīng)該被提交到版本管理中),導(dǎo)致git stash pop 提示沖突狸眼,瘋狂百度也沒能解決問題藤树,最后無意發(fā)現(xiàn)執(zhí)行g(shù)it stash clear 后,本地目錄的文件都回來了拓萌,不知道為什么岁钓,知道原來的可以底下留言,謝謝

擴(kuò)展:
gitignore配置
git stash詳解

特別感謝以上朋友的技術(shù)分享

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末微王,一起剝皮案震驚了整個(gè)濱河市屡限,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌炕倘,老刑警劉巖钧大,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異罩旋,居然都是意外死亡啊央,警方通過查閱死者的電腦和手機(jī)眶诈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓜饥,“玉大人册养,你說我怎么就攤上這事⊙构蹋” “怎么了球拦?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長帐我。 經(jīng)常有香客問我坎炼,道長,這世上最難降的妖魔是什么拦键? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任谣光,我火速辦了婚禮,結(jié)果婚禮上芬为,老公的妹妹穿的比我還像新娘萄金。我一直安慰自己,他們只是感情好媚朦,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布氧敢。 她就那樣靜靜地躺著,像睡著了一般询张。 火紅的嫁衣襯著肌膚如雪孙乖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天份氧,我揣著相機(jī)與錄音唯袄,去河邊找鬼。 笑死蜗帜,一個(gè)胖子當(dāng)著我的面吹牛恋拷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播厅缺,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼蔬顾,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了店归?” 一聲冷哼從身側(cè)響起阎抒,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎消痛,沒想到半個(gè)月后且叁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡秩伞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年逞带,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了欺矫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡展氓,死狀恐怖穆趴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情遇汞,我是刑警寧澤未妹,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站空入,受9級(jí)特大地震影響络它,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜歪赢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一化戳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧埋凯,春花似錦点楼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至躏结,卻和暖如春却盘,著一層夾襖步出監(jiān)牢的瞬間狰域,已是汗流浹背媳拴。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兆览,地道東北人屈溉。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像抬探,于是被迫代替她去往敵國和親子巾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 聲明:這篇文章來源于廖雪峰老師的官方網(wǎng)站小压,我僅僅是作為學(xué)習(xí)之用 Git簡介 Git是什么线梗? Git是目前世界上最先...
    橫渡閱讀 3,946評(píng)論 3 27
  • 以下筆記主要參考gitgot,大致了解git使用和原理怠益。 第一部分我們從個(gè)人的視角去研究如何用好Git仪搔,并且揭示G...
    carolwhite閱讀 2,367評(píng)論 0 1
  • Git 安裝和使用教程 Git介紹 分布式:Git版本控制系統(tǒng)是一個(gè)分布式的系統(tǒng),是用來保存工程源代碼歷史狀態(tài)的命...
    無名_ff98閱讀 1,624評(píng)論 0 3
  • 安裝Git Git的下載地址:Git官網(wǎng)下載地址 Git本地倉庫和命令 配置用戶 下載完Git后蜻牢,右鍵會(huì)有一個(gè)Gi...
    TokyoZ閱讀 4,491評(píng)論 1 7
  • 查看烤咧、添加偏陪、提交、刪除煮嫌、找回笛谦,重置修改文件 git help # 顯示command的help git sho...
    Swiftor閱讀 2,101評(píng)論 0 2