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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

git stash 个人理解

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

link

git stash (git 儲藏)用于以下場景:

1.發現一個類是多余的,想刪掉它擔心之后會用到它,想保存但又不想增加一個臟的提交,這時候可以考慮使用git stash;

2.使用git的時候,我們往往使用分支(branch)解決任務切換問題,例如,我們往往會建一個自己的分支去修改和調試代碼, 如果別人或者自己發現原有的分支上有個不得不修改的bug,我們往往會把完成一半的代碼commit提交到本地倉庫,然后切換分支去修改bug,改好之后再切換回來。這樣的話往往log上會有大量不必要的記錄。其實如果我們不想提交完成一半或者不完善的代碼,但是卻不得不去修改一個緊急Bug,那么使用git stash就可以將你當前未提交到本地(和服務器)的代碼推入到Git的棧中,這時候你的工作區間和上一次提交的內容是完全一樣的,所以你可以放心的修Bug,等到修完Bug,提交到服務器上后,再使用git stash apply將以前一半的工作應用回來。

3.經常有這樣的事情發生,當你正在進行項目中某一部分的工作,里面的東西處于一個比較雜亂的狀態,而你想轉到其他分支上進行一些工作。問題是,你不想提交進行了一半的工作,否則以后你無法回到這個工作點。解決這個問題的辦法就是git stash命令。儲藏(stash)可以獲取你工作目錄的中間狀態——也就是你修改過的被追蹤的文件和暫存的變更——并將它保存到一個未完結變更的堆棧中,隨時可以重新應用。

stash 的用法

1. stash當前修改 (git stash save)

git stash會把所有未提交的修改(包括暫存的和非暫存的)都保存起來,用于后續恢復當前工作目錄。通過git stash命令推送一個新的儲藏,當前的工作目錄就干凈了。

需要說明一點,stash是本地的,不會通過git push命令上傳到git server上。
實際應用中推薦給每個stash加一個message,用于記錄版本,使用git stash save取代git stash命令。示例如下:

git stash save "修改了index文件"

git stash list

2. 重新應用緩存的stash

可以通過git stash pop命令恢復之前緩存的工作目錄,輸出如下:

$ git status

$ git stash pop

這個指令將緩存堆棧中的第一個stash刪除,并將對應修改應用到當前的工作目錄下。
你也可以使用git stash apply命令,將緩存堆棧中的stash多次應用到工作目錄中,但并不刪除stash拷貝。命令輸出如下:

$ git stash apply

3. 查看現有stash

可以使用git stash list命令,一個典型的輸出如下:

$ git stash list stash

@{0}: WIP on master: 049d078 added the index file stash

@{1}: WIP on master: c264051 Revert "added file_size" stash

@{2}: WIP on master: 21d80a5 added number to log

在使用git stash apply命令時可以通過名字指定使用哪個stash,默認使用最近的stash(即stash@{0})。

4. 移除stash

可以使用git stash drop命令,后面可以跟著stash名字。下面是一個示例:

  • $ git stash list
  • stash@{0}: WIP on master: 049d078 added the index file
  • stash@{1}: WIP on master: c264051 Revert "added file_size"
  • stash@{2}: WIP on master: 21d80a5 added number to log
  • $ git stash drop stash@{0}
  • Dropped stash@{0} (364e91f3f268f0900bc3ee613f9f733e82aaed43)
  • 或者使用git stash clear命令,刪除所有緩存的stash。

    5. 查看指定stash的diff

    可以使用git stash show命令,后面可以跟著stash名字。示例如下:

  • $ git stash show
  • index.html | 1 +
  • style.css | 3 +++
  • 2 files changed, 4 insertions(+)
  • 在該命令后面添加-p或--patch可以查看特定stash的全部diff,如下:

  • $ git stash show -p
  • diff --git a/style.css b/style.css
  • new file mode 100644
  • index 0000000..d92368b
  • --- /dev/null
  • +++ b/style.css
  • @@ -0,0 +1,3 @@
  • +* {
  • + text-decoration: blink;
  • +}
  • diff --git a/index.html b/index.html
  • index 9daeafb..ebdcbd2 100644
  • --- a/index.html
  • +++ b/index.html
  • @@ -1 +1,2 @@
  • +<link rel="stylesheet" href="style.css"/>
  • 6. 從stash創建分支

    如果你儲藏了一些工作,暫時不去理會,然后繼續在你儲藏工作的分支上工作,你在重新應用工作時可能會碰到一些問題。如果嘗試應用的變更是針對一個你那之后修改過的文件,你會碰到一個歸并沖突并且必須去化解它。如果你想用更方便的方法來重新檢驗你儲藏的變更,你可以運行 git stash branch,這會創建一個新的分支,檢出你儲藏工作時的所處的提交,重新應用你的工作,如果成功,將會丟棄儲藏。

  • $ git stash branch testchanges
  • Switched to a new branch "testchanges"
  • # On branch testchanges
  • # Changes to be committed:
  • # (use "git reset HEAD <file>..." to unstage)
  • #
  • # modified: index.html
  • #
  • # Changes not staged for commit:
  • # (use "git add <file>..." to update what will be committed)
  • #
  • # modified: lib/simplegit.rb
  • #
  • Dropped refs/stash@{0} (f0dfc4d5dc332d1cee34a634182e168c4efc3359)
  • 這是一個很棒的捷徑來恢復儲藏的工作然后在新的分支上繼續當時的工作。

    7. 暫存未跟蹤或忽略的文件

    默認情況下,git stash會緩存下列文件:

    • 添加到暫存區的修改(staged changes)
    • Git跟蹤的但并未添加到暫存區的修改(unstaged changes)

    但不會緩存一下文件:

    • 在工作目錄中新的文件(untracked files)
    • 被忽略的文件(ignored files)

    git stash命令提供了參數用于緩存上面兩種類型的文件。使用-u或者--include-untracked可以stash untracked文件。使用-a或者--all命令可以stash當前目錄下的所有修改。

    ?

    ?

    文章知識點與官方知識檔案匹配,可進一步學習相關知識CS入門技能樹Git入門Git簡介758 人正在系統學習中

    總結

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

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

    主站蜘蛛池模板: 精品人妻一区二区三区久久夜夜嗨 | 成人免费大全 | 成人影音在线 | 色窝窝无码一区二区三区成人网站 | 一级特黄肉体裸片 | 区一区二区三 | 成人性生活毛片 | 农民工hdxxxx性中国 | 国产日韩欧美在线 | 欧美性受xxxx狂喷水 | 欧美久久综合网 | 日本www在线观看 | 健身教练巨大粗爽gay视频 | 超碰免费在线观看 | 天天有av | 日韩新片王网 | 夜夜干天天操 | 久久久久久无码精品大片 | а√天堂资源官网在线资源 | 男人天堂网av | 污视频91| 欧美三级一区二区 | 521av在线 | 国产精品视频久久久久 | 二级毛片视频 | 嫩草影院懂你的影院 | 色吧五月天 | 作爱视频在线 | 亚洲成人偷拍 | 亚洲黄色精品视频 | 日本少妇ⅹxxxxx视频 | 欧美精品一二三区 | 极品一区 | 久操视频在线播放 | 黑人糟蹋人妻hd中文字幕 | 朝桐光一区二区三区 | 日本免费一区二区三区四区五六区 | 国产午夜精品一区二区三区 | 在线观看免费福利 | 亚洲色图 欧美 | 国产三级精品三级在线观看 | 超碰人人99 | 嫩草视频一区二区三区 | 亚洲视频精品一区 | 香蕉钻洞视频 | 在线天堂v | 一区二区小说 | 99在线精品视频免费观看20 | 谁有av网址| 天天想你免费观看完整版高清电影 | 成人久久一区 | av福利在线| 超碰在线cao | 碰碰久久 | 国产无套精品 | 蜜桃av在线播放 | 久久一区二区三区四区 | 播播激情网 | 亚洲激情文学 | 天天看黄色片 | 人妻大战黑人白浆狂泄 | 人人超碰97 | 91一区视频 | 一级做a爰片毛片 | 日韩av免费网站 | 色一情一乱一区二区三区 | 黄色免费网站在线观看 | 免费看黄在线观看 | 992在线观看 | 国产精品入口麻豆九色 | 久草视频在线免费 | 日韩av.com| 最新版天堂资源在线 | 亚洲视频天天射 | 久久久久久久女国产乱让韩 | 一级福利片 | 国产精品久久久久电影 | 日本成人动漫在线观看 | 久久久久久综合 | 奇米影视在线播放 | 黄色大片视频 | 欧美日韩高清在线观看 | www.伊人网 | 婷婷在线播放 | 天海翼一区二区三区 | 国产专区第一页 | 亚洲视频色图 | 天天操人人干 | 日日噜噜夜夜爽爽 | 色婷网 | 欧美性大战久久久久久 | 久久久免费观看 | 久久成人一区 | 久久久亚洲国产精品 | 制服丝袜第二页 | 亚洲精品国产成人久久av盗摄 | 99久热在线精品996热是什么 | 精品偷拍一区 | 日韩欧美国产片 |