repository 倉庫、源代碼庫、版本庫。位於服務器上,一般存放一個項目,團隊共用。
checkout 提取、檢出。從倉庫copy一個副本到本地。
update 更新。從服務器獲取更新,將本地的這個副本更新到指定的版本(默認是最新的版本)。
revert 恢復、還原。相當於Ctrl+Z。
diff 查看更改的詳細信息。
commit 提交。修改完成后,要將項目提交給倉庫,大家就可以看到你的修改了。如果兩個程序員同時修改了同一個文件, 服務器會合並(merge)這兩個程序員的改動。實際上SVN管理源代碼是以行為單位的,就是說兩個程序員只要不是修改了同一行程序,SVN都會自動合並兩種修改。如果是同一行,SVN 會提示文件 Conflict, 沖突,需要手動確認修改。
branch 分支。希望開發進程分開成兩條不同的線路時,可以建立一個分支,分支其實就是 trunk 版(主干線)的一個copy版,不過分支也是具有版本控制功能的,而且是和主干線相互獨立的,分支開發完畢后,通過 merge(合並)功能,將分支合並到 trunk 上來,從而合並為一個項目。
tag 標簽,給某一個具體版本起一個有意義的名字。主要用於項目開發中的里程碑,比如開發到一定階段可以單獨一個版本作為發布等,它往往代表一個可以固定的完整的版本,比如tag v2.0
SVN的特點:
- 版本歷史。能夠保留全部版本記錄,對文件、目錄的增、刪、改、重命名等操作都保存在版本歷史記錄當中。
- 原子提交。一次提交不管是單個還是多個文件,都是作為一個整體提交的。在這當中發生的意外例如傳輸中斷,不會引起數據庫的不完整和數據損壞。
- 對於二進制文件,只保存和上一個版本不同之處,節省了空間。
- 優化了數據庫訪問,使得一些操作不必訪問數據庫就可以做到,減少了很多不必要的和數據庫主機之間的網絡流量。
服務器操作的步驟:
1、新建一個版本庫
2、添加開發小組的成員
可查看所有版本的更改信息、下載某個版本。
本地操作步驟:
1、將項目發布至版本庫(服務器)
如果是本地服務器,點擊右邊的".."即可選擇版本庫對應的文件夾。
如果是遠程服務器: svn:// 遠程主機的IP地址或域名地址:端口號/版本庫名 缺省端口號時使用默認的。
2、從服務器下載項目
在要存儲項目的位置,單擊右鍵,(下載的項目默認存儲到此文件夾里,也可以后面自己選擇存儲位置,不影響)
3、下載項目后,自己可以修改項目,與此同時,別人可能會提交自己的修改到服務器,我們update一下,就可以將別人提交的修改同步到本地。
對項目單擊右鍵:
上面的是更新整個項目,我們可以只對某個文件、某個文件夾單擊右鍵,這樣只更新該文件、文件夾。
是更新到最新版本。我們也可以更新到指定的版本:
4、我們修改完成后,需要把修改后的項目提交到服務器。
對項目單擊右鍵
上面是提交了整個項目的修改。我們可以只單擊某個文件、文件夾,這樣只提交這個文件、文件夾的修改。
刪除了某些文件、文件夾后,要提交才會同步到服務器。missing,表示該文件已被刪除,要勾選才會在服務器同步刪除此文件。
如果新建了某個文件、文件夾,而此文件、文件夾在以前的版本中沒有,可以按照上面的方式隨整個項目一起提交修改。如果只想提交新建的部分:
對新建的文件、文件夾單擊右鍵
5、查看不同版本的更改
對要查看的文件、文件夾單擊右鍵
6、版本回退
如果這個項目、文件、文件夾被改廢了,或者想回退到某個版本、某個節點:
對要回退的項目、文件、文件夾單擊右鍵
Revert是回退到上一次Commit時的狀態。
7、如果想增加一些新功能,或者要避免損壞原來的版本,可以新建一個分支(branch),在分支上開發。可以在某個文件、文件夾、整個項目上新建分支。
分支創建完成后,並不會生成新的文件、文件夾來保存新的分支。
8、創建新分支后,原來的分支默認為trunk(主干、主分支)。
切換到該分支后,該文件/文件夾就是該分支的文件/文件夾,進行開發即可。
8、分支開發完成后,需要把分支合並到主干(trunk)。
至此合並已完成,commit到服務器。查看版本:主干v7,分支v8,已經合並為v9。 主干是單獨的一列。
工作大體流程:
第一天開始開發時,checkout檢出副本到本地。
之后每天開始工作之前,我們總是update更新一下,獲取同事做的更改。
之后我們自己在本地做一些修改、開發。
完成后commit提交給服務器。