版本控制器SVN
一、版本控制
- 為什么需要版本控制?
- 小明負責的模塊就要完成了,就在即將Release之前的一瞬間,電腦突然藍屏,硬盤光榮犧牲!幾個月來的努力付之東流——需求之一:備份!
- 這個項目中需要一個很復雜的功能,老王摸索了一個星期終于有眉目了,可是這被改得面目全非的代碼已經回不到從前了。什么地方能買到哆啦A夢的時光機啊?需求之二:代碼還原!
- 小剛在java文件中的第30行聲明了一個方法,叫count(),保存到了文件服務器上;小強在Analysis.java文件中的第50行聲明了一個方法,叫sum(),也保存到了文件服務器上,于是,count()方法就只存在于小剛的記憶中了——需求之三:協同修改!
- 老許是一位項目經理,我會告訴你他親自為工程創建版本號嗎?我會告訴你他把每一個版本都保存一份嗎?我會告訴你這些工程里其實有很多文件都是重復的嗎?我會告訴你老許為這事刪了很多電影嗎?——需求之四:版本管理和版本發布!
- 老王是另一位項目經理,每次因為項目進度挨罵之后,他都不知道該扣哪個程序員的工資!就拿這次來說吧,有個該死的Bug調試了30多個小時才知道是因為相關屬性沒有在應用初始化時賦值!可是二胖、王東、劉流和正經牛都不承認是自己干的!——需求之五:追溯問題代碼的編寫人和編寫時間!
- 小溫這兩天幸福的如同掉進了蜜罐里,因為他成功的得到了前臺MM麗麗的芳心,可他郁悶的是這幾天總是收到QA小組的郵件,要求他修正程序中存在的Bug,可他自己本地電腦上是沒有這些Bug的,“難道我的代碼被哪個孫子給改了?”。是的,小溫沒來的時候,麗麗是QA小組小鄭的女朋友啊!——需求之六:權限控制!
使用版本控制能夠解決上面的問題嗎?是的!
- 什么是版本控制?
- 版本控制:Revision control,最初來源于工程設計領域,是維護工程藍圖的標準做法,能追蹤工程藍圖從誕生一直到定案的過程。是一種記錄若干文件內容變化,以便將來查閱特定版本修訂情況的系統。
- Subversion就是一款實現版本控制的工具軟件,通常也稱為版本控制器,簡稱SVN。
SVN的工作原理:采取客戶端/服務器模式,多個協同開發的程序員把各自的源代碼提交到版本控制器的服務器端,由SVN服務器對各個版本進行編號,并負責管理沖突,SVN能夠將沖突的代碼以比較友好的格式呈現出來,便于開發人員比較,進行取舍。
- SVN基本操作
- 檢出(checkout):將一個服務器端創建好的項目整個下載到本地,這是到項目組后參與開發的第一步,只需執行一次。
- 更新(update):將本地文件更新為服務器端的最新版本,通常為每天上班時或修改公共文件之前執行一次。
提交(commit):將本地修改提交到服務器端。通常每天下班前或每實現一個功能、完成一個模塊時執行一次。
本教程由尚硅谷教育大數據研究院出品,如需轉載請注明來源,歡迎大家關注尚硅谷公眾號(atguigu)了解更多。