中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Git工作區儲藏兼談分支管理中的問題怎么解決

發布時間:2021-12-07 14:27:34 來源:億速云 閱讀:140 作者:iii 欄目:大數據

本篇內容主要講解“Git工作區儲藏兼談分支管理中的問題怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Git工作區儲藏兼談分支管理中的問題怎么解決”吧!

問題回顧

小伙伴遇到的問題是這樣的:

現在有一個master分支,master分支中有一個文件叫01.txt,該文件中只有一行數據,然后對01.txt執行add和commit,然后再從master分支中創建出一個新的分支fa,切換到fa分支上,然后向01.txt中再添加一行數據,添加成功之后,不做任何事情,再切換回master分支,此時用cat命令查看01.txt文件,發現竟然有兩行數據,按理說master中的01.txt只有一行數據,而fa中的01.txt有兩行數據,整個過程如下圖:

Git工作區儲藏兼談分支管理中的問題怎么解決  

要搞清楚這個問題,得先明白下面這個問題:

cat命令和git無關,就是用來查看文件的,我為了演示方便使用了cat命令,這和直接用記事本打開文件查看效果是一樣的。

可能眼尖的小伙伴已經發現端倪了,我們上面這個操作少了兩個步驟,那就是add/commit,fa分支中的數據修改之后直接切換回了master,而沒有add/commit。正常情況下(修改數據后add/commit),如果master和fa分支中的數據不一致,我們執行了git checkout -進行分支的切換,這個時候工作區中的文件內容也是會跟著變化的(大家可以通過cat命令或者直接在記事本中打開工作區的文件來查看這種變化),但是如果我在fa分支中修改了文件卻沒有add/commit就切換回master,此時如果工作區的文件變化了,可能會導致我在fa分支中的修改丟失,因此,這個時候工作區的文件就沒有變化,即工作區的文件內容還是fa分支中修改的內容。  

解決這個問題,我們有兩種方案,請小伙伴們往下看。

解決方案

方案一

第一種解決方案就是在某一個分支修改文件之后,先add并且commit之后再去切換分支,這個操作就比較簡單了,我這里就不再演示了。

方案二(儲藏)

第二種解決方案就是儲藏(Stashing),儲藏適用在如下場景中:

當我在一個分支fa中修改了文件,但是還沒有完全改好,此時我并不想add/commit,但是這個時候有一個更急迫的事情在另外一個分支fb上需要我去做,我必須要切換分支。

在這樣一個場景中,如果我直接切換分支,會出現如下兩個問題:

1.從fa切換到fb之后,工作區的代碼還是fa的代碼,不符合我的工作要求。
2.假設我不在乎問題1,在fb中直接修改工作區的代碼,等我在fb中修改完后提交后再回到fa,會發現我之前的代碼丟失了。

為了解決這個問題,Git給我們提供了儲藏(Stashing)。

現在假設一開始master和fa分支中的文件內容都是一致的,而且兩個分支的工作區都是干凈的,即沒有東西需要add/commit,此時,我在master中修改了文件,修改完成之后,執行git status命令我們看到master中有東西需要add/commit,此時我想切換到fa分支中去,但是并不想對master分支執行add/commit,這個時候我們可以執行如下命令,先將當前分支中的文件儲藏起來:

$ git stash

OK,執行完git stash命令之后,再執行git status,我們發現此時master分支已經是干凈的了,此時我們可以愉快的切換到fa分支中去了,切換到fa分支之后,我們發現master中的修改并沒有干擾到fa分支,當我們完成了fa分支中的工作之后,再回到master分支,此時執行如下命令可以恢復剛剛儲藏的數據:

$ git stash apply

上面這個命令執行完之后,master分支中的工作區中的文件就恢復了,此時執行git status就可以看到又有數據需要add/commit了。

我們也可將工作區儲藏多次,這個時候我們可以執行如下命令來查看儲藏:

$ git stash list

執行效果如下:

Git工作區儲藏兼談分支管理中的問題怎么解決

git stash apply表示恢復最近一次儲藏,如果我們想恢復到之前的某一次儲藏,可以加上儲藏的名字,如下:

$ git stash apply stash@{1}

還有一些其他的關于儲藏的命令:

1.恢復儲藏并出棧
$ git stash pop

執行效果和git stash apply一樣,不同的是,這里執行完之后,會將棧頂的儲藏移除。

2.刪除某一個儲藏
$ git stash drop stash@{4}

最后一個參數是指儲藏的名字。

到此,相信大家對“Git工作區儲藏兼談分支管理中的問題怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

git
AI

龙游县| 临猗县| 蒲城县| 会理县| 济南市| 手游| 巧家县| 诸城市| 高平市| 遂川县| 鲁甸县| 金塔县| 张北县| 萨迦县| 塔城市| 济源市| 正镶白旗| 台北县| 武功县| 屯留县| 克山县| 新丰县| 石泉县| 呈贡县| 北海市| 新龙县| 阳西县| 东源县| 嫩江县| 尼勒克县| 华亭县| 遵义县| 唐河县| 江阴市| 山阳县| 文登市| 特克斯县| 菏泽市| 教育| 平和县| 育儿|