版本管理工具SVN學習(一):簡單的SVN命令,兼對比Git
新公司用SVN來管理代碼,而且公司自己搭建了SVN伺服器,所以要學習下SVN的相關命令、伺服器搭建等技能知識。上家公司是用Git管理代碼,而且代碼託管在git@oschina上,自然不用操心Git伺服器的問題,只要熟悉Git常用的命令就可以了。下面來學習下SVN(客戶端)的基本命令,簡單來說就是:
1,如何從遠程倉庫拉(檢出)代碼、如何拉取(獲取)遠程代碼的更新
2,如何檢查本地倉庫狀態
3,如何添加新文件到代碼庫
4,如何提交文件修改到代碼庫
5,如何查看修改日誌
6,如何對比文件
7,如何解決衝突
8,如何回滾更改
如何...,暫時只想到上面的需求,以後想到了或遇到了再完善。
1,先找個SVN伺服器來做實驗
其實可以自己搭建一個svn伺服器,不過今天暫時先不搭建,先來學svn的基本命令。那麼我們先找一個免費的svn伺服器,大家可以百度,我找的是這個:淘寶Code。
然後可以根據提示先建一個遠程的項目,就相當於在SVN伺服器上新建一個項目。這個和Git其實差不太多。
2,將遠程倉庫的代碼檢出到本地
這一步其實和git也差不多,git是clone到本地。
3,檢查本地代碼狀態
在項目目錄下面執行:svn status,這個和git status也差不多,只不過,如果沒有更改的話,svn好像什麼信息也不顯示。
4,添加新文件到本地代碼庫
在learn-svn/trunk下
可以看到svn會提示有新文件被添加,svn add test.note就可以添加文件到版本庫,但svn不支持像git add .這樣的操作。然後再檢查下狀態:
可以看到文件被添加到本地版本庫,這裡其實相當於git commit,那麼如何提交到遠程倉庫呢?
5,提交代碼到遠程倉庫
svn commit -m "add file"就可以提交到遠程倉庫,這和git的git push不一樣。
6,查看日誌
svn log可以查看提交日誌
svn log -r 3 -v查看版本3的詳細日誌
感覺這個和git log不太一樣,git log提供的信息好像比較多。
7,比較差異
svn diff可以比較代碼差異,在修改未提交到遠程代碼庫時可以比較差異,命令:svn diff trunk 遠程倉庫地址,這個和git差不多。
8,更新本地代碼庫和解決衝突
當a和b同時修改了一個文件,並且a的修改被提交到遠程代碼庫,而b在未更新本地代碼庫的時候卻嘗試提交代碼到遠程代碼庫,這時是不可能提交成功的。這時b需要先更新本地代碼庫:
svn update,這和git fetch/pull不同,但其實實質應該是差不多的,都是先獲取遠程代碼,然後將本地代碼與遠程代碼合并。如果有衝突,則會提示不能合并,解決衝突後才能合并。
svn解決衝突的操作要比git要複雜一些,有時間再仔細看下。
今天先到這兒,後續會接著學習如何在本地創建倉庫、新建分支、刪除分支、合并分支等與分支相關的操作,以及如何搭建SVN伺服器。
TAG:達人科技 |
※EvilOSX:一款功能強大的macOS遠程管理工具(RAT)
※EvilOSX:一款功能強大的macOS遠程管理工具
※Reddit熱議:只要2行代碼,免費開源ML管理工具TRAINS
※MongoDB 管理工具: Rockmongo
※集群管理工具KafkaAdminClient——原理與示例
※Google文件管理工具Files Go推中國版
※管理工具:SMART原則
※時間追蹤管理工具ManicTime Pro
※Google 推出移動版任務管理工具 Google Tasks
※iTools Pro 1.8.0.4 簡單易用的蘋果設備 iPhone/iPad 管理工具
※Docker容器和數據可視化管理工具Flocker
※TLP:一個可以延長 Linux 筆記本電池壽命的高級電源管理工具
※SimpleRemote 輕量級、選項卡式、免費、開源的遠程連接管理工具
※iOS11越獄也能在Cydia中安裝系統管理工具!
※谷歌為Apps Script發布三款新管理工具,讓開發更簡單!
※【積極父母成長工具】:孩子情緒管理工具--Blob Tree
※Linux管理員必備的最佳IP地址管理工具
※DBA必備的23款最佳SQL管理工具,精選!
※Facebook產品更新!Facebook推出廣告管理工具新體驗!
※Unix管理工具Webmin爆有遠程程序代碼執行漏洞