到目前爲止咱們都仍是在一個名爲master的分支裏面作操做,而git的優點之一就是對分支的操做,在本文中就來講一說怎麼搞分支和標籤。html
接着上一篇文章來,繼續使用那個工程。git
關於git中分支和標籤的管理上的建議,你們能夠參考這篇文章:Git分支管理策略 以及 一個成功的 Git 分支模型eclipse
固然,本文並不打算說怎麼規劃你的分支和標籤,由於我本身也沒有鬧明白,本文只說怎麼建立、合併、刪除分支以及標籤,關於規劃方面的請根據本身的須要來,能夠看一下那兩篇文章。maven
當咱們在git@osc建立一個項目的時候,勾選了初始化項目的話,是會建立一個有master分支的項目的,這也是以前建立項目的方式,此外還能夠清空項目,而後推送本地已有的櫃檯倉庫上去。可是這不是重點,重點是有了master,而後在此基礎上建立分支,而後開發。spa
在eclipse中建立分支,請在倉庫視圖中右鍵->"switch to"->"new branch",打開新建分支對話框:htm
在對話框中指定新建的分支基於什麼,推送和拉取的配置,分支名是什麼等:blog
新分支的基礎默認是當前檢出的分支,咱們能夠進行「選擇」,能夠在彈出框裏面選擇具體須要的,如今尚未建立標籤,因此「tags」下面仍是空的,之後有了標籤,就能夠基於標籤建立分支了。名稱能夠按照本身的須要命名,只要符合命名要求就能夠,不能重複這是必須的。推送和拉取的配置勾上就能夠了。ip
一切就緒,「肯定」以後就已經在新的分支上了。開發
能夠看到,本地已經有了這個分支,可是遠端上實際上尚未,由於咱們尚未推送這個分支:rem
在上一步驟中新建了分支"develop",,接下來將其推送到遠端上去。
在那條倉庫記錄上面右鍵->「remote」->"push",打開推送對話框:
第一步是選擇遠端,也能夠添加遠端,之後有須要的能夠配置,這裏不須要管,直接下一步便可:
接下來就是選擇推送的內容和類型了,有分支啊、標籤啊,添加、更新、刪除等等,這裏將要推送的分支選上,而後添加進列表便可:
配置好以後就能夠開始推送啦:
剩下的就是下一步和結束啦。
完成後能夠在網頁上和本地看到變化:
通過實際使用,發現一個問題,那就是在新分支上第一次推送提交的時候仍是會叫推送這個分支,不知道爲什麼。
先在新分支上提交一次,讓兩個分支不同。
(和以前的提交同樣)
合併分支要講究「主動方」和「被動方」的,要將develop合併到master中,須要先切換到master,而後將develop合併進來。
先切換到master分支,在倉庫記錄上右鍵->"switch to"->"master"。
而後再右鍵->"merge":
在對話框中有一些合併的選項:
首先大框中有能夠選擇來進行合併的項目,遠端和本地分別顯示的,由於有時候本地和遠端是不一樣步的,除了分支還能夠選擇標籤。
下面有兩組單選,第一組不用管,第二組一個表示不會建立額外的提交,第二個表示建立一個提交。
這裏選擇合併本地的develop分支,建立一個合併提交記錄:
而後本地的文件就修改了,在「history」標籤裏面的記錄成了這樣:
若是不建立合併提交的話本地的master和develop就會是重合的。
接下來直接「push to upstream」便可。
在倉庫記錄裏面的「tags」上面右鍵->"create tag"打開建立標籤對話框:
在對話框中填寫好須要的信息,而後選擇「create and start push」,建立並推送標籤,進入推送對話框:
而後一直下一步和結束就能夠了。
等結束以後就能夠在本地和遠端的標籤列表中個查看到了。:
通常標籤都不刪除的,由於即便遠端刪除了,若是刪除以前有人拉取了,那麼在以後他的本地記錄不會刪除的,即便後面建立了一個相同的標籤也不會被覆蓋,那樣就會形成不一樣步。因此最好的是建立標籤以前就考慮好,若是確實須要更改也應該建立一個新的標籤。
分支也最好不要刪除,即便該分支已經不須要了,那麼也將其留在那裏,以便未來使用。分支和標籤的刪除,本地直接右鍵選擇刪除就能夠了,可是對遠端的刪除要麻煩一點。
在倉庫記錄上面右鍵->「remote」->"push"打開推送對話框,而後下一步,進入編輯推送任務的對話框:
要刪除分支,在「delete」下拉選擇須要刪除的分支,而後「添加」將分支添加下面的任務列表,
與以前的推送分支比起來,前面的「update」變成了「delete」,而後提交便可。
標籤的刪除須要先添加全部的標籤記錄的任務,而後將目標明確修改成須要刪除的標籤 的名字,將前面的「update」修改成delete。
修改以後是這樣的:
接下來就直接下一步和結束就能夠了。
從刪除標籤的方式能夠看出,標籤是真的真的不推薦刪除的。
分支和標籤怎麼建立、管理、合併、刪除等,是須要綜合考慮的,須要不斷的根據實際總結和調整。這裏只是說明一個操做的方法而已。
到這裏對於git的使用基本就差很少了,接下來是基於git的這些功能的maven的使用了。
有不對的地方歡迎你們留言指出來。
enjoy!!!