今天就跟大家聊聊有關(guān)IDEA 中使用Git Stash的方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
環(huán)境準(zhǔn)備
為了演示,先用 IDEA 創(chuàng)建一個(gè)簡(jiǎn)單工程,提交到 git 遠(yuǎn)程倉(cāng)庫(kù)當(dāng)中。
dev-100 分支創(chuàng)建
現(xiàn)在接到了一個(gè)編號(hào)為 100 的需求,我們?cè)?master 基礎(chǔ)上,創(chuàng)建 dev-100 分支
創(chuàng)建新分支 dev-100的同時(shí),并切換到 dev-100 分支。
dev-100 分支代碼開發(fā)
在 dev-100 分支編寫需求編號(hào)為 100 的 功能,代碼完成后進(jìn)行commit
以及push
(如果這個(gè)分支只有你一個(gè)人在開發(fā)的話,就不用push
到遠(yuǎn)程分支了,只需要commit
即可)
分支合并
現(xiàn)在我們要把 dev-100 分支上的代碼合并到 master 主分支上
先切換到 master 分支
合并 dev-100 分支到 master 分支之前,建議先對(duì) master 代碼進(jìn)行 pull 更新操作,然后再執(zhí)行 Merge into Current
如果沒有沖突,dev-100 中的代碼就會(huì)被合并到 master 分支上了,合并成功后,需要push
才能推送到遠(yuǎn)程倉(cāng)庫(kù)
取消分支合并
合并完成后,但是由于一些問題,我們想要取消本次合并,右鍵 git,選擇 Reset HEAD
HEAD^ 是還原到上一個(gè)版本,HEAD^^ 是還原到上上一個(gè)版本。
Reset Type 有三種:
一般使用默認(rèn)的 mixed 或者粗暴的 hard 方式。
我們這里是取消合并,所以選擇Hard
方式,并且是HEAD^
還原到上一個(gè)版本,回退后恢復(fù)了原來(lái) master 的代碼。
解決合并沖突問題
接下來(lái)演示合并沖突,此時(shí)是在 master 分支,我們修改文件,并 commit 以及 push 到遠(yuǎn)程倉(cāng)庫(kù)。
此時(shí)再把 dev-100 分支合并到 master 分支就會(huì)提示沖突。
雙擊沖突文件,處理沖突。
處理完成后,點(diǎn)擊 apply 即可,如果有多個(gè)沖突文件,都按照這種方式處理,這是我們處理完沖突之后的代碼。
dev-100 分支已經(jīng)被成功合并到 master 了,就可以刪除了。可以直接刪除遠(yuǎn)程 dev-100 分支,刪除時(shí) IDEA 會(huì)提示是否同時(shí)刪除本地的 dev-100 分支,勾選即可。
現(xiàn)在我們把分支合并的結(jié)果 push 到遠(yuǎn)程倉(cāng)庫(kù)。
代碼暫存之git stash
編號(hào) 100 的需求完成之后,現(xiàn)在我們又接到一個(gè)新的需求,正在 dev-101 分支進(jìn)行開發(fā),開發(fā)還未完成。
突然線上出現(xiàn) bug,需要我們緊急進(jìn)行修改,于是我們要基于新的 master 分支新建一個(gè) bug 分支 bug-12,需要先切換到 master 分支,但是當(dāng)前分支的代碼沒有commit, 如果直接切換到 master 分支的話,dev-101 分支上的新增代碼就會(huì)跑到 master 分支,而代碼又不能此時(shí) commit ,于是就輪到 stash 出場(chǎng)了。
Stash 會(huì)保存當(dāng)前工作進(jìn)度,會(huì)把暫存區(qū)和工作區(qū)的改動(dòng)保存起來(lái)。
添加備注,選擇CREATE STASH。你會(huì)發(fā)現(xiàn)當(dāng)前工作區(qū)內(nèi)的代碼被恢復(fù)成了原樣。
代碼暫存還原
此刻切換到 master 分支,并創(chuàng)建 bug-12 分支進(jìn)行修復(fù) bug,修復(fù)完成后合并到 master 分支并 push 到遠(yuǎn)程倉(cāng)庫(kù),上文已經(jīng)演示如何合并,在此不再贅述。
將 bug-12 與 master 合并完成之后,現(xiàn)在要接著寫 dev-101 需求代碼,首先先切換到 dev-101 分支;
但是之前的代碼已經(jīng)被我們放到了 git 的 stash 當(dāng)中,我們現(xiàn)在要把代碼還原到工作區(qū)當(dāng)中。
選擇 Unstash Changes
選擇之前保存的,同時(shí)勾選 Pop stash(還原完成后,會(huì)自動(dòng)刪除這個(gè) stash),確定后,工作區(qū)之前寫的代碼就又回來(lái)了。
結(jié)語(yǔ)
Stash 利用好了,就可以自如切換分支,面對(duì)突如其來(lái)的需求也不必?zé)懒藒
看完上述內(nèi)容,你們對(duì)IDEA 中使用Git Stash的方法有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
網(wǎng)頁(yè)題目:IDEA中使用GitStash的方法-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://www.chinadenli.net/article28/ijdjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、手機(jī)網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容