工具-SVN與Git

  1. SVN:Subversion的簡稱
1. SVN是一個集中式版本控制器,可以記錄每一次文件和目錄的修改情況,可以查看數據的更改細節
2. SVN架構:
    * 客戶端接口:命令行/GUI
    * 客戶端:
        * 工作空間
        * 本地倉庫管理
    * 遠程倉庫接口:
        * Berkeley DB:事務安全型表類型
        * FSFS:不需要數據庫的存儲系統
          BDB方式在服務器中斷時,有可能鎖住數據,所以還是FSFS方式更安全一點。
  1. SVN使用:
1. 下載安裝:
    a. VisualSVN
    b. TortoiesSVN
2. 使用步驟:
    a. 通過VisualSVN選擇一個目錄作爲服務器倉庫
    b. 可以創建用戶和組來控制訪問權限
    c. 在一個工作空間目錄下,右鍵選擇checkout,將該文件夾作爲空的本地倉庫
    d. 在本地倉庫中編寫文檔,右鍵add表示將該文檔納入SVN管理
    e. 在工作空間內右鍵commit,表示將修改提交到服務器倉庫
    f. 右鍵update表示從服務器倉庫跟新內容到本地倉庫
    g. 右鍵show log可以查看版本信息,並比較版本文檔差異
    h. 本地倉庫刪除文檔後,需要commit後服務器倉庫纔會刪除
    i. import將本地資源導入SVN服務器,export導出項目,和checkout區別在於export導出項目沒有.svn隱藏文件
3. 衝突與解決衝突:
    * 多個用戶同時操作同一個文件時,提交時可能會產生衝突,此時需要手動解決衝突後提交
    * 產生衝突後,SVN會下載4個文件到本地:
        1. 合併多個用戶修改後的有衝突的文檔
        2. 自己修改的有衝突的文檔
        3. 自己修改前一版本的文檔
        4. 其他用戶修改後的當前服務器新的版本的文檔
    * 對合並後的文檔進行手動修改,修改後右鍵選擇resolve表示已經解決衝突
    * 重新提交集合
4. IDEA下使用SVN:
    * 在安裝SVN後,在settings --> Version Control --> Subversion --> 配置SVN目錄下bin目錄下的svn.exe
    a. Share Project:將本地項目納入到SVN管理
        1. VCS --> import into version control --> Shaer Project(Subversion)
    b. Checkout Project:將遠程項目下載到本地
        1. VCS --> Checkout from Version Control --> Subversion
    c. add/update/commit:添加/更新/提交
        1. 文件 --> 右鍵add/update/commit
    d. ignored file:忽略文件/文件夾
        1. 在底部點開SVN相關控制檯,選擇Configure Ignored Files添加或者刪除忽略的文件/文件夾
5. 分支合併:
    a. 首先在主幹下先update保證最新
    b. 切換到分支下,右鍵Merge
  1. Git:
1. SVN與Git:
    * SVN:集中式版本控制系統。必須聯網(局域網/互聯網)才能工作
        集中管理方式在一定程度上看到其他開發人員在幹什麼,而管理員也可以很輕鬆掌握每個人的開發權限。
    * Git:是分佈式版本控制系統,那麼它就沒有中央服務器的,每個人的電腦就是一個完整的版本庫
        本地可以add/update/commit進行一個循環的開發,add到暫存區,commit到本地倉庫,checkout本地倉庫到工作區
        也可以push到遠程倉庫或者從遠程倉庫pull到工作區,或者clone遠程倉庫到本地倉庫
  1. Git使用:
1. 下載安裝:
    a. git客戶端
    b. TortoiseGit
        配置Git的安裝路徑下的bin目錄
2. 使用步驟:
    a. 在空目錄下右鍵Git 在這裏創建版本庫 -- 不創建純版本庫
    b. 在工作區編寫文檔後,右鍵add添加到暫存區,commit提交到本地倉庫
    c. add/update/commit操作與SVN類似
    d. 文件/文件夾右鍵添加到忽略列表可以在commit時忽略該文檔
3. 遠程倉庫GitHub使用:
    a. 在GitHub上創建一個空的不帶README的空倉庫
    b. 在本地右鍵Git Bash中輸入ssh-keygen在本地生成公鑰私鑰
    c. 將本地的公鑰配置在GitHub賬戶中
    d. 使用TortoiseGit設置 --> 網絡 --> SSH客戶端(Git/usr/bin/ssh.exe)
    e. 配置Git的遠端設置SSH形式的新建空倉庫的URL,選擇Putty密碼爲私鑰文件,保存配置
    f. 在本地倉庫中右鍵Git同步可以將本地倉庫Push到遠程,也可以從遠程倉庫Pull到本地
        git fetch:相當於是從遠程獲取最新版本到本地,不會自動merge(合併代碼) --  更安全一些
        git pull:相當於是從遠程獲取最新版本並merge到本地
4. 克隆遠程倉庫:
    * 克隆遠程倉庫也就是從遠程把倉庫複製一份到本地,克隆後會創建一個新的本地倉庫。
        選擇一個任意部署倉庫的目錄,然後克隆遠程倉庫。
5. 搭建私服:
    a. Ubuntu下:安裝Git-Server
        sudo apt-get install git-core
    b. 新添加一個用戶專門用來管理git
        sudo useradd -m git
        sudo passwd git
    c. 建立一個git倉庫的存儲點: 
        sudo mkdir /home/repo  #選擇合適的位置
    d. 設置該倉庫的權限,僅git用戶操作:
        sudo chown git:git /home/repo
        sudo chmod 755 /home/repo
    e. 在該倉庫目錄中初始化git倉庫:
        git init --bare #bare表示是純版倉庫,不包含.git文件夾
    f. 此時創建的私有倉庫可以使用,url爲:
        ssh://用戶名@IP地址/home/repo
        ssh:/[email protected]/home/repo
        在設置中新建一個遠端,不需要配置私鑰,只需填寫URL,同步時則需要輸入git用戶的密碼
6. 分支管理:
    a. 創建分支:
        1. 右鍵切換/檢出 --> 新建分支並切換到該分支
        2. 右鍵新建分支  --> 僅新建分支,未做切換
    b. 並行開發:
        主幹的版本與分支版本互不干擾
    c. 合併分支:
        1. 合併到誰下面就先切換到其下,右鍵Merge
        2. 選擇從哪個分支合併到當前分支
    d. 衝突與解決衝突:
        1. 合併分支後可能會產生文檔衝突
        2. 手動解決衝突文件後,對該文件右鍵選擇解決衝突
        3. 重新提交更新版本庫,合併成功
7. IDEA下使用Git:
    a. 配置Git:
        settings --> Version Control --> Git --> 配置安裝的git.ext --> test測試是否配置正確
    b. 添加工程到Git
        1. 新建一個工程進行開發
        2. VCS --> Import into Version Control --> Create Git Repository
            選擇該文件夾的父目錄作爲倉庫
        3. commit將項目提交到本地倉庫
    c. 推送到遠程:
        1. GitHub上創建一個不帶README的空倉庫
        2. 在本地倉庫的工程上右鍵git --> Repository --> push
            或者VCS --> Git --> push
        3. 點擊Define remote配置Https形式的URL點擊OK後,輸入GitHub用戶名和密碼即可推送
    d. 從遠程倉庫Clone:
        1. 新建項目時,選擇Check out from Version Control選擇Git
        2. 配置需要克隆的倉庫的HTTPS形式URL
    e. update:
        將遠程倉庫的更新到本地
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章