天天看點

版本控制SVN和Git

版本控制

1.為什麼需要版本控制?

從個人開發過渡到團隊協作。

版本控制SVN和Git

​​2.版本控制工具點選下載下傳​​

  • 集中式版本控制工具

    CVS、SVN、VSS……

  • 分布式版本控制工具

    Git、Mercurial、Bazaar、Darcs……

3.SVN工作機制

  • 檢出(Checkout)
  • 把伺服器端版本庫内容完整下載下傳到本地。
  • 在整個開發過程中隻做一次。
  • 更新(Update)
  • 把伺服器端相對于本地的新的修改下載下傳到本地。
  • 送出(Commit)
  • 把本地修改上傳到伺服器。

​​分享部落格:SVN使用—工作模式及運作原理以及優缺點對比​​

4.SVN伺服器端安裝

這裡教大家安裝svn到linux上,打開虛拟機,打開SecureCRTPortable.exe。

輸入指令:yum install -y subversion

檢視版本是否安裝成功:svn --version

版本控制SVN和Git

5.建立版本庫

①SVN服務配置檔案

vim /etc/sysconfig/svnserve,這個檔案隻是看看,不需要改。

版本控制SVN和Git

②建立版本庫目錄和項目目錄

輸入指令:mkdir -p /var/svn/pro_oa

pro_oa:這裡是你要上傳項目到伺服器是的倉庫名,我這裡用了簡寫,一個oa項目的倉庫名

③執行svnadmin指令真正建立版本庫

輸入指令:svnadmin create /var/svn/pro_oa

④将來的通路方式

版本控制SVN和Git

svn://ip位址:端口号(預設可以不用寫)/版本庫

⑤啟動SVN服務

輸入指令:systemctl start svnserve.service
輸入指令:systemctl enable svnserve.service      

開啟匿名通路

vim 版本庫根目錄/conf/svnserve.conf
anon-access = write      

關閉selinux

vim /etc/sysconfig/selinux

SELINUX=disabled

reboot

6.Eclipse通路SVN伺服器

①Eclipse中的SVN插件

[1]簡介

Subversive:Eclipse團隊開發的SVN插件。 安裝麻煩點,使用很爽

Subclipse:Apache的SVN團隊開發的Eclipse插件。安裝很爽,使用容易出錯

我們安裝Subversive

[2]安裝過程

版本控制SVN和Git
版本控制SVN和Git

install

版本控制SVN和Git
版本控制SVN和Git
版本控制SVN和Git
版本控制SVN和Git

②建立資源庫位置

版本控制SVN和Git
版本控制SVN和Git

③Eclipse中忽略特定檔案

版本控制SVN和Git

操作方法:

  • 第一步:打開~\AppData\Roaming\Subversion\config檔案
  • 第二步:修改global-ignores

 global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__ *.rej *~ #*# .#* .*.swp .DS_Store .settings */.settings/* .classpath .project target */target/*

④分享工程

  • 第一步

    工程→右鍵→Team→Share Project...

  • 第二步

    版本控制工具中選擇SVN

  • 第三步

    選擇一個已經存在的資源庫位置或建立一個 可以直接點Finish(工程在SVN伺服器端的目錄名和工程名一緻;上傳工程目錄的日志使用預設值)

版本控制SVN和Git
  • 第四步

    确認工程根目錄下子目錄和檔案是否全部上傳

版本控制SVN和Git

⑤常見圖示含義

版本控制SVN和Git

⑥檢出

  • 第一步

    在Eclipse中執行Import操作

版本控制SVN和Git
  • 第二步

    确認資源庫位置

  • 版本控制SVN和Git
  • 第三步

    找到SVN伺服器端工程對應的目錄

版本控制SVN和Git
  • 第四步

    選擇檢出方式

版本控制SVN和Git
  • 第五步

    Finish

版本控制SVN和Git
  • 第六步

    轉換工程類型

版本控制SVN和Git

⑦其他基本操作規律

資源→右鍵→Team→相關菜單項

⑧解決沖突

  • 第一步

    沖突檔案→右鍵→Team→Edit Conflicts

  • 第二步
版本控制SVN和Git

7.Git簡史

版本控制SVN和Git

8.Git工作機制

版本控制SVN和Git

9.Git和代碼托管中心

代碼托管中心負責維護遠端庫。

  • 區域網路
  • GitLab
  • 外網
  • GitHub
  • 碼雲

10.本地庫和遠端庫互動機制

①團隊内協作

版本控制SVN和Git

②跨團隊協作

版本控制SVN和Git

11.Git安裝

版本控制SVN和Git
版本控制SVN和Git
版本控制SVN和Git
版本控制SVN和Git
版本控制SVN和Git
版本控制SVN和Git
版本控制SVN和Git
版本控制SVN和Git
版本控制SVN和Git

12.Git常用指令

版本控制SVN和Git
版本控制SVN和Git
版本控制SVN和Git

On branch master: 在master的分支上

No Commits yet :現在沒有任何的送出到本地庫

Untracked files:沒有追蹤的檔案,追蹤:就是git把這個檔案管理起來了

(user "git add <fiile>..." to include in what will be committed):使用git add 将這個檔案包含到将要送出的地方,也就是暫存區,我們現在在工作區。

nothing added to commit but untracked files present (use "git add" to track):你沒有任何要添加的檔案到暫存區,但是存在未追蹤的檔案

git add:有二個作用:一個是讓Git去追蹤這個檔案,另一個是讓檔案包含到暫存區。

版本控制SVN和Git
版本控制SVN和Git

Changes to be committed:檢測到要被送出的修改,就是new file:hello.txt

(use "git rm --cached <file>..." to unstage):執行git rm --cached 檔案名可以撤銷,rm:删除,cached:緩存,把暫存區的檔案删除

版本控制SVN和Git

在(root-commit)後面有一個版本号 ,它是哈希加密的一個結果。

git commit git commit -m "日志資訊" 檔案名,需要先讓Git去追蹤,之後就可以直接送出

版本控制SVN和Git
版本控制SVN和Git

版本穿梭:通過版本号回到原來的版本

版本控制SVN和Git
版本控制SVN和Git

現在的指針指向現在的版本,隻是做了一個版本的移動,沒有建立新的版本。

13.分支操作

①什麼是分支

版本控制SVN和Git

在版本控制過程中,同時推進多個任務 

版本控制SVN和Git

②分支的好處

同時并行推進多個功能開發,提高開發效率 各個分支在開發過程中,如果某一個分支開發失敗,不會對其他分支有任何影響。失敗的分支删除重新開始即可。

③分支操作

版本控制SVN和Git
版本控制SVN和Git

master:顔色為綠色,是現在所在的分支。

版本控制SVN和Git
git merge 分支名 把指定的分支合并到目前分支上

什麼叫合并呢?

版本控制SVN和Git

我們同時進行二個項目的開發,做完後要将項目合并到一起。

我們先回到主幹分支

版本控制SVN和Git

然後将hotfix分支合并,可以看到他增加了一行,減少了一行。

版本控制SVN和Git

14.GitHub操作

名稱
Email位址 [email protected]
GitHub賬号 BoomManager

15.建立遠端庫

可以建立GitHub:有許多國外的優秀項目,但網絡連接配接速度較慢。也可以建立碼雲賬戶:國内的代碼托管中心,國内的程式員更适應些。

分享​​GitHub的注冊與使用(詳細圖解)​​

16.遠端庫操作

①建立遠端庫位址别名

git remote -v 檢視目前所有遠端位址别名

git remote add 别名 遠端位址

版本控制SVN和Git
版本控制SVN和Git

②推送

git push 别名 分支

版本控制SVN和Git

③克隆

git clone (你要克隆誰的,他的遠端位址)

注意:先進入到你自己需要克隆到的目錄,然後在克隆别人的遠端庫位址

④邀請加入團隊

版本控制SVN和Git

⑤拉取:從遠端庫拉取到本地庫

git pull 遠端庫位址别名 遠端分支名

版本控制SVN和Git

我現在用了别名origin,添加别名:git remote add 别名 遠端位址

17.跨團隊協作

​​分享:團隊協作,組織和分支​​

18.SSH登入

進入目前使用者的家目錄

$ cd ~

删除.ssh目錄

$ rm -rvf .ssh

運作指令生成.ssh密鑰目錄

$ ssh-keygen -t rsa -C [email protected]

[注意:這裡-C這個參數是大寫的C]

進入.ssh目錄檢視檔案清單

$ cd .ssh

$ ls -lF

檢視id_rsa.pub檔案内容

$ cat id_rsa.pub

複制id_rsa.pub檔案内容,登入GitHub,點選使用者頭像→Settings→SSH and GPG keys

New SSH Key

輸入複制的密鑰資訊

回到Git bash建立遠端位址别名

git remote add origin_ssh [email protected]:BoomManager/Repository01.git

推送檔案進行測試

19.Eclipse操作

①初始化本地庫

版本控制SVN和Git
版本控制SVN和Git

②忽略檔案

編輯一個專門配置檔案忽略的檔案,檔案名任意

# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target      

在~/.gitconfig檔案中引入上述檔案

[core]

    excludesfile = C:/Users/Lenovo/Java.gitignore      

[注意:這裡路徑中一定要使用“/”,不能使用“\”] 

③推送

版本控制SVN和Git
版本控制SVN和Git

④克隆

版本控制SVN和Git

⑤分支操作