版本控制在友軍那裏都是放在整個培訓的最後階段纔開始講的,但咱們打算放到SE階段。與其匆匆在項目實戰階段弄個半生不熟,而後進入實際工做中接受他人對你的懷疑,不如……早死早超生~~~。php
但是,咱們畢竟如今纔剛學了Java一個月,代碼都寫的不溜呢,甚至都不知道目前掌握的知識能作點撒實際有用的工做,怎麼就來個版本控制?版本控制是撒?java
抄一段百科的版本控制解釋:版本控制是指對軟件開發過程當中各類程序代碼、配置文件及說明文檔等文件變動的管理,是軟件配置管理的核心思想之一。git
看到沒,版本控制是一種思想,可是程序猿不跟你講思想,跟你講實實在在的東西,因此,實現這個思想的必定是個實實在在的工具。在最課程的整個學習過程當中,商業項目實戰階段代碼的版本控制工具,咱們使用SVN。而,我的工具代碼集,咱們要求使用git,放到github中。程序員
爲何要如今就開始體驗版本控制呢?由於我曾經詢問過不少學員,你們對於畢業後軟件公司的真實開發流程很茫然。而最課程想要帶你作的,就是提早適應真實的開發,讓學員從儘量早的時刻,就參與到需求管理、版本控制、同行review、解決代碼衝突、移行、測試、發佈的整個過程。github
咱們在培訓班學習,重點毫不應該僅僅是編碼知識(那還不如去自學看視頻),而應該是如何使用學到的知識應用到真實的開發中。服務器
來提早感知下,整個開發流程大概是個什麼樣子的吧eclipse
軟件開發中的精簡併行過程(SPP)分佈式
以上整個SPP過程包括:6大階段、12個過程域、28個規程、31個文檔模板。你有沒有準備好到咱們最課程來感知一下呢?ide
無論怎麼樣,讓咱們先首先學習這整個過程當中最重要也是最基礎的一環:版本控制吧。svn
上文已經簡單介紹過了,如今咱們用白話來再介紹一下它有什麼用:
首先,能將代碼提交到服務器,這樣本機即便被炸掉了,或者你忽然離職消失了,只要服務器沒被老闆娘砸掉(什麼,有這種事情?是的,回頭給大家講講我一個客戶的故事),公司的代碼就都還在;
其次,能將代碼回退到之前的任何一次提交上。這是什麼意思呢?好比,你一個月前寫了一個功能:讓APP的背景隨手機殼顏色的變化而變化,可是一個禮拜前你按照產品經理的要求把功能修改成:讓APP的背景隨我心情的變化而變化。可是,怎麼又一個可是?可是就是這麼任性,可是這在實際的開發中就是這麼容易出現。可是如今產品經理跑來告訴你:我不想要你上週剛實現的功能了,你把功能回退到一個月前的那個背景隨手機殼顏色變化而變化的功能吧。此刻,你心中的心情應該是這樣的:
要知道,代碼在本機但是已經覆蓋了,這個時候,版本控制管理工具就能夠發揮做用了,你能夠將代碼回退到歷史上任何一個時刻。
這裏來個小插曲,要想不被產品經理欺負,能夠嘗試準備以下工具:
最後,版本控制的另外一個重要功能是,任何稍微大型點的軟件,都不多是一我的完成的,因此,咱們須要一個工具將團隊成員的代碼合併到一塊兒,看上去像是一我的寫的同樣。因此,代碼的提交和合並也是咱們真實開發的平常。
好了,暫時對於初學者來講,就講到這吧。目前夠用了。
SVN就是那個實現版本控制思想的工具。廢話很少說,直接給出軟件的下載地址:https://www.visualsvn.com/
下載回來大概長這樣
雙擊安裝
如上選擇,next
選擇標準安裝
注意哦,默認是不須要https的,若是有同窗手賤想嘗試https,也是能夠的。但我牆裂建議你不選擇https,由於……在局域網中,沒撒特別的意義。並且,在整個學習的過程當中,還要求其餘同窗鏈接到你的源碼服務器上,選擇了https的話,有些同窗的電腦可能會連不上你的電腦。
安裝完畢在系統服務裏有svn的服務,以下:
服務器端在公司裏,是真的安裝在一臺服務器上的。在咱們的學習過程當中,那就跟客戶端同樣安裝在你本身的學習機上就好了。
客戶端大體長以下這樣
咱們一路next下去就行,沒什麼特別須要注意的地方。
打開服務器管理界面,添加用戶,按提示來,添加上你本身的用戶名,好比:baobao
倉庫有了,就要給這個倉庫分配權限,由於,你可不想讓任何人都接觸到代碼。來吧,給你剛建立的用戶添加代碼的讀寫權限吧:
完畢。
訪問svn其實就跟訪問網站同樣,也是有一個地址的,可是地址怎麼獲得呢?看下圖
而後,在本地任意文件夾中點右鍵
粘貼剛纔的地址,回車:
你就能夠看到下面的界面了
這裏默認已經建立了3個目錄,每一個目錄是何時,咱們會在項目管理的時候講到,這裏,咱們只須要記住,咱們全部的代碼都放到trunk中就好了。
那接下來要怎麼把代碼放到服務器上呢?一種方式是直接拖動文件到上面的窗口中去,可是咱們平時開發是在IDE中的(Ps:目前是eclipse,將來是idea)。那能不能直接從eclipse中提交代碼到服務器呢?
固然是能夠的。
可是,要完成這個功能,咱們就須要給eclipse裝插件。這個插件叫subversive。下載地址在:
http://www.eclipse.org/subversive/
http://www.eclipse.org/subversive/previous-releases.php
那怎麼安裝呢?首先是解壓,而後把下面兩個目錄複製到eclipse對應的目錄中去就能夠了。
而後,記得重啓elicpse。
可是,事情並不像咱們想象的那麼簡單。要說怎麼java程序員這麼苦逼呢。當咱們覺得可使用svn的時候,咱們還須要一個connector,下載地址在:
因爲咱們的subversive是3.0,故下載這個
一樣,安裝也是執行目錄copy
重啓eclipse,而後檢查下:
若是像上圖同樣,該有的都有了,那麼咱們的安裝就成功了。
首先,像下圖那樣進行選擇
而後,在該頁面new一個倉儲,輸入svn地址,獲得:
在trunk下建立一個文件夾,
Ps1,這個文件夾最好和我們在eclipse中建立的項目名一致);
Ps2,我示例中的項目叫:parent;
回到項目視圖,在項目上share project
接着
注意路徑選擇,路徑的命名首先要定位到trunk下,而後再加上項目的名
接下來,是提交代碼。在項目名上面,右鍵->team->commit,出現以下界面
首先,讓咱們寫上註釋。注意,註釋寫的越詳細越好,把你此次提交完成了什麼功能都寫上,省得咱們未來查看歷史的時候,不知道本次提交是幹什麼用的。
其次,咱們是提交所有文件嗎?顯然也不是,除了代碼文件外,一些配置文件或者附屬文件咱們不該該提交上來。
可是,每次去提交的時候,選擇提交的文件太麻煩了,那有沒有一種一次性批量忽略的辦法呢?固然是有的,以下圖:
要忽略這幾個後綴:.settings,.project,.classpath
提交後,在eclipse的項目上,會有受控標識,相似以下:
在項目上右鍵->team->show history,看看會出現什麼?
好了,以上是咱們爲了完成第一次大做業所要儲備的版本控制的知識。更多的功能,等咱們慢慢後期挖掘中。
華麗分割線
===========================================================
1:最課程JavaEE+互聯網分佈式新技術開班進行中,來http://www.zuikc.com來報名吧;
2:更多技術文章和開班信息請加入,QQ羣:
3:本文所涉及要下載的軟件能夠進羣向老師索取;
4:SVN的教學視頻能夠進羣向老師索取;