IDEA Git Stash 使用詳解
隨著公司開發(fā)人員的增加,以及多需求的并行開發(fā),功能上線就會礙手礙腳;害怕自己沒寫完的代碼被別人部署到線上,害怕別人代碼沒寫完被自己部署到線上;總之功能上線之前還要和所有開發(fā)溝通,能不能部署代碼?如果只是幾個人的團(tuán)隊(duì)倒也無妨,但是開發(fā)人員多了,溝通成本就很高了。于是 Git 的分支就發(fā)揮它的作用了,本文講解工作中使用 IDEA 進(jìn)行分支的管理以及合并,以及其他 Git 使用技巧。
環(huán)境準(zhǔn)備
為了演示,先用 IDEA 創(chuàng)建一個簡單工程,提交到 git 遠(yuǎn)程倉庫當(dāng)中。

dev-100 分支創(chuàng)建
現(xiàn)在接到了一個編號為 100 的需求,我們在 master 基礎(chǔ)上,創(chuàng)建 dev-100 分支

創(chuàng)建新分支 dev-100的同時,并切換到 dev-100 分支。

dev-100 分支代碼開發(fā)
在 dev-100 分支編寫需求編號為 100 的 功能,代碼完成后進(jìn)行 commit 以及 push(如果這個分支只有你一個人在開發(fā)的話,就不用 push 到遠(yuǎn)程分支了,只需要 commit 即可)

分支合并
現(xiàn)在我們要把 dev-100 分支上的代碼合并到 master 主分支上
先切換到 master 分支

合并 dev-100 分支到 master 分支之前,建議先對 master 代碼進(jìn)行 pull 更新操作,然后再執(zhí)行 Merge into Current

如果沒有沖突,dev-100 中的代碼就會被合并到 master 分支上了,合并成功后,需要 push 才能推送到遠(yuǎn)程倉庫

取消分支合并
合并完成后,但是由于一些問題,我們想要取消本次合并,右鍵 git,選擇 Reset HEAD


HEAD^ 是還原到上一個版本,HEAD^^ 是還原到上上一個版本。
Reset Type 有三種:
- mixed 默認(rèn)方式,只保留源碼,回退commit和index信息
- soft 回退到某個版本,只回退了commit的信息,不會恢復(fù)到index file一級。如果還要提交,直接commit
- hard 徹底回退,本地源碼也會變成上一個版本內(nèi)容
一般使用默認(rèn)的 mixed 或者粗暴的 hard 方式。
我們這里是取消合并,所以選擇 Hard 方式,并且是HEAD^還原到上一個版本,回退后恢復(fù)了原來 master 的代碼。

解決合并沖突問題
接下來演示合并沖突,此時是在 master 分支,我們修改文件,并 commit 以及 push 到遠(yuǎn)程倉庫。

此時再把 dev-100 分支合并到 master 分支就會提示沖突。

雙擊沖突文件,處理沖突。

處理完成后,點(diǎn)擊 apply 即可,如果有多個沖突文件,都按照這種方式處理,這是我們處理完沖突之后的代碼。

dev-100 分支已經(jīng)被成功合并到 master 了,就可以刪除了??梢灾苯觿h除遠(yuǎn)程 dev-100 分支,刪除時 IDEA 會提示是否同時刪除本地的 dev-100 分支,勾選即可。
現(xiàn)在我們把分支合并的結(jié)果 push 到遠(yuǎn)程倉庫。
代碼暫存之git stash
編號 100 的需求完成之后,現(xiàn)在我們又接到一個新的需求,正在 dev-101 分支進(jìn)行開發(fā),開發(fā)還未完成。

突然線上出現(xiàn) bug,需要我們緊急進(jìn)行修改,于是我們要基于最新的 master 分支新建一個 bug 分支 bug-12,需要先切換到 master 分支,但是當(dāng)前分支的代碼沒有commit, 如果直接切換到 master 分支的話,dev-101 分支上的新增代碼就會跑到 master 分支,而代碼又不能此時 commit ,于是就輪到 stash 出場了。

Stash 會保存當(dāng)前工作進(jìn)度,會把暫存區(qū)和工作區(qū)的改動保存起來。

添加備注,選擇 CREATE STASH。你會發(fā)現(xiàn)當(dāng)前工作區(qū)內(nèi)的代碼被恢復(fù)成了原樣。

代碼暫存還原
此刻切換到 master 分支,并創(chuàng)建 bug-12 分支進(jìn)行修復(fù) bug,修復(fù)完成后合并到 master 分支并 push 到遠(yuǎn)程倉庫,上文已經(jīng)演示如何合并,在此不再贅述。
將 bug-12 與 master 合并完成之后,現(xiàn)在要接著寫 dev-101 需求代碼,首先先切換到 dev-101 分支;
但是之前的代碼已經(jīng)被我們放到了 git 的 stash 當(dāng)中,我們現(xiàn)在要把代碼還原到工作區(qū)當(dāng)中。
選擇 Unstash Changes


選擇之前保存的,同時勾選 Pop stash(還原完成后,會自動刪除這個 stash),確定后,工作區(qū)之前寫的代碼就又回來了。

結(jié)語
Stash 利用好了,就可以自如切換分支,面對突如其來的需求也不必?zé)懒藒
到此這篇關(guān)于IDEA Git Stash 使用詳解的文章就介紹到這了,更多相關(guān)IDEA Git Stash 使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于WebSocket協(xié)議狀態(tài)碼解析
這篇文章主要介紹了關(guān)于WebSocket協(xié)議狀態(tài)碼的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04
hexo博客開啟https的SSL?證書實(shí)現(xiàn)過程
這篇文章主要為大家介紹了hexo?博客開啟https的SSL證書實(shí)現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
Azkaban報(bào)錯-azkaban.executor.ExecutorManagerException: No acti
這篇文章主要介紹了Azkaban報(bào)錯-azkaban.executor.ExecutorManagerException: No active executors found,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-05-05
解決git配置錯誤ssh:connect to host github.com
學(xué)習(xí)git時,可能會碰到遠(yuǎn)程倉庫連接問題,解決方法是確保.ssh目錄正確配置,首先,確認(rèn).ssh是隱藏文件夾,可通過ctrl+h顯示,然后,創(chuàng)建無后綴的config文件,并填寫正確的git郵箱賬號,最后,通過終端驗(yàn)證配置是否成功,這些步驟有助于解決git遠(yuǎn)程連接的常見問題2024-10-10
Chrome瀏覽器斷點(diǎn)調(diào)試技巧(非常詳細(xì)!)
在我們?nèi)粘i_發(fā)中,常常利用chrome強(qiáng)大的控制臺Sources下面進(jìn)行代碼斷點(diǎn)調(diào)試,這篇文章主要給大家介紹了關(guān)于Chrome瀏覽器斷點(diǎn)調(diào)試技巧的相關(guān)資料,需要的朋友可以參考下2023-09-09
Alfred?+?Gitee搭建免費(fèi)圖床的使用實(shí)例詳解
這篇文章主要為大家介紹了Alfred?+?Gitee搭建免費(fèi)圖床的使用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01

