隨著公司開發人員的增加,以及多需求的並行開發,功能上線就會礙手礙腳;害怕自己沒寫完的**被別人部署到線上,害怕別人**沒寫完被自己部署到線上;總之功能上線之前還要和所有開發溝通,能不能部署**?如果只是幾個人的團隊倒也無妨,但是開發人員多了,溝通成本就很高了。於是 git 的分支就發揮它的作用了,本文講解工作中使用 idea 進行分支的管理以及合併,以及其他 git 使用技巧。
環境準備
為了演示,先用 idea 建立乙個簡單工qzbaubd程,提交到 git 遠端倉庫當中。
dev-100 分支建立
現在接到了乙個編號為 100 的需求,我們在 master 基礎上,建立 dev-100 分支
建立新分支 dev-100的同時,並切換到 dev-100 分支。
dev-100 分支**開發
在 dev-100 分支編寫需求編號為 100 的 功能,**完成後進行commit以及push(如果這個分支只有你乙個人在開發的話,就不用push到遠端分支了,只需要commit即可)
分支合併
現在我們要把 dev-100 分支上的**合併到 master 主分支上
先切換到 master 分支
合併 dev-100 分支到 master 分支之前,建議先對 mas **進行 pull 更新操作,然後再執行 merge into current
如果沒有衝突,dev-100 中的**就會被合併到 master 分支上了,合併成功後,需要push才能推送到遠端倉庫
取消分支合併
合併完成後,但是由於一些問題,我們想要取消本次合併,右鍵 git,選擇 reset head
head^ 是還原到上乙個版本,head^^ 是還原到上上乙個版本。
reset type 有三種:
一般使用預設的 mixed 或者粗暴的 hard 方式。
我們這裡是取消合併,所以選擇hard方式,並且是head^還原到上乙個版本,回退後恢復了原來 master 的**。
解決合併衝突問題
接下來演示合併衝突,此時是在 master 分支,我們修改檔案,並 commit 以及 push 到遠端倉庫。
此時再把 dev-100 分支合併到 master 分支就會提示衝突。
雙擊衝突檔案,處理衝突。
處理完成後,點選 apply 即可,如果有多個衝突檔案,都按照這種方式處理,這是我們處理完衝突之後的**。
dev-100 分支已經程式設計客棧被成功合併到 master 了,就可以刪除了。可以直接刪除遠端 dev-100 分支,刪除時 idea 會提示是否同時刪除本地的 dev-100 分支,勾選即可。
現在我們把分支合併的結果 push 到遠端倉庫。
**暫存之git stash
編號 100 的需求完成之後,現在我們又接到乙個新的需求,正在 dev-101 分支進行開發,開發還未完成。
突然線上出現 bug,需要我們緊急進行修改,於是我們要基於最新的 master 分支新建乙個 bug 分支 bug-12,需要先切換到 master 分支,但是當前分支的**沒有commit, 如果直接切換到 master 分支的話,dev-101 分支上的新增**就會跑到 master 分支,而**又不能此時 commit ,於是就輪到 stash 出場了。
stash 會儲存當前程式設計客棧工作進度,會把暫存區和工作區的改動儲存起來。
新增備註,選擇create stash。你會發現當前工作區內的**被恢復成了原樣。
**暫存還原
此刻切換到 master 分支,並建立 bug-12 分支進行修復 bug,修復完成後合併到 master 分支並 push 到遠端倉庫,上文已經演示如何合併,在此不再贅述。
將 bug-12 與 master 合併完成之後,現在要接著寫 dev-101 需求**,首先先切換到 dev-101 分支;
但是之前的**已經被我們放到了 git 的 程式設計客棧stash 當中,我們現在要把**還原到工作區當中。
選擇 unstash changes
選擇之前儲存的,同時勾選 pop stash(還原完成後,會自動刪除這個 stash),確定後,工作區之前寫的**就又回來了。
結語stash 利用好了,就可以自如切換分支,面對突如其來的需求也不必煩惱了~
git學習 九 idea git stash操作
在前面說過,git stash 命令的作用就是將目前還不想提交的但是已經修改的內容進行儲存至堆疊中,後續可以在某個分支上恢復出堆疊中的內容 git stash 作用的範圍包括工作區和暫存區中的內容,沒有提交的內容都會儲存至堆疊中 使用場景 假如突然線上出現 bug,我們需要先切換到 master 分...
Spring MVC JsonView使用詳解
spring 提供了對jackson 非常好的支援,可以檢視此spring jackson demo 來掌握。這裡著重說一下 jsonview的用法 jsonview可以過濾序列化物件的字段屬性,可以使你有選擇的序列化物件。下面看乙個例子 首先我們定義乙個view類,裡面包含我們對 要序列化的字段 ...
Spring MVC JsonView使用詳解
原文出處 spring 提供了對jackson 非常好的支援,這裡著重說一下 jsonview的用法 jsonview可以過濾序列化物件的字段屬性,可以使你有選擇的序列化物件。下面看乙個例子 首先我們定義乙個view類,裡面包含我們對 要序列化的字段 的定義,我們暫時歸為summary 摘要 屬於s...