天天看點

06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

目錄

一,版本控制的概念

二,版本控制工具

1,Visual Source Safe(簡稱VSS)

2,Concurrent Version System(簡稱CVS)

3,SVN

4,GIT

三,git和svn的差別

四,git安裝

五,git工作區域

六,git檔案操作

七,git遠端伺服器介紹

1,GitHub

2,GitLab

3,Gitee

八,gitee操作

1,基本概念

九,git初始化

十,git操作遠端倉庫

步驟一

步驟二

步驟三

十一,git關聯idea

一,版本控制的概念

如果在開發團隊中沒有使用版本控制,多個開發人員共同負責同一個軟體或文檔的開發,每個人在各自的機器上有整個軟體文檔的備份,并對之實施程式設計開發,在分别完成各自任務之後,再通過文本比對工具将各自機器上的不同版本的程式整合到一台機器上。沒有進行版本控制或者版本控制本身缺乏正确的流程管理,在軟體開發過程中将會引入很多問題,如軟體代碼的一緻性、軟體内容的備援、軟體過程的事務性、軟體開發過程中的并發性、軟體源代碼的安全性,以及軟體的整合等問題。

版本控制的目的是實作開發團隊并行開發、提高開發效率的基礎。其目的在于對軟體開發程序中檔案或目錄的發展過程提供有效的追蹤手段,保證在需要時可回到舊的版本,避免檔案的丢失、修改的丢失和互相覆寫,通過對版本庫的通路控制避免未經授權的通路和修改,達到有效保護企業軟體資産和知識産權的目的。

版本控制的功能在于跟蹤記錄整個軟體的開發過程,包括軟體本身和相關文檔,以便對不同階段的軟體及相關文檔進行表示并進行差别分析,對軟體代碼進行可撤消的修改,便于彙總不同開發人員所做的修改,輔助協調和管理軟體開發團隊。

二,版本控制工具

1,Visual Source Safe(簡稱VSS)

VSS是美國微軟公司的産品,目前常用的版本為6.0版。VSS是配置管理的一種很好的入門級的工具。易學易用是VSS的強項VSS采用标準的windows操作界面,隻要對微軟的産品熟悉,就能很快上手。

VSS的安裝和配置非常簡單,對于該産品,不需要外部的教育訓練(可以為公司省去一筆不菲的費用)。隻要參考微軟完備的随機文檔,就可以很快的用到實際的工程當中。

VSS的配置管理的功能比較基本,提供檔案的版本跟蹤功能,對于build和基線的管理,VSS的打标簽的功能可以提供支援。VSS提供share(共享)、branch(分支)和合并(merge)的功能,對于團隊的開發進行支援。VSS不提供對流程的管理功能,如對變更的流程進行控制。

VSS不能提供對異地團隊開發的支援。此外VSS隻能在windows平台上運作,不能運作在其他作業系統上。 有軟體提供商提供VSS插件,可以同時解決VSS跨平台和遠端連接配接兩個問題,例如SourceAnywhere for VSS, SourceOffSite等。

VSS的安全性不高,對于VSS的使用者,可以在檔案夾上設定不可讀,可讀,可讀/寫,可完全控制四級權限。但由于VSS的檔案夾是要完全共享給使用者後,使用者才能進入,是以使用者對VSS的檔案夾都可以删除。這一點也是VSS的一個比較大的缺點。

VSS沒有采用對許可證進行收費的方式,隻要安裝了VSS,對使用者的數目是沒有限制的。是以使用VSS的費用是較低的。

微軟不再對VSS提供技術支援。

2,Concurrent Version System(簡稱CVS)

CVS是開發源代碼的配置管理工具,其源代碼和安裝檔案都可以免費下載下傳。

CVS是源于unix的版本控制工具,對于CVS的安裝和使用最好對unix的系統有所了解能更容易學習,CVS的伺服器管理需要進行各種指令行操作。

目前,CVS的用戶端有winCVS的圖形化界面,伺服器端也有CVSNT的版本,易用性正在提高。

CVS的功能除具備VSS的功能外,還具有:

  • 它的客戶機/伺服器存取方法使得開發者可以從任何網際網路的接入點存取最新的代碼;
  • 它的無限制的版本管理檢出(checkout)的模式避免了通常的 因為排它檢出模式而引起的人工沖突;
  • 它的用戶端工具可以在絕大多數的平台上使用。

同樣,CVS不提供對變更流程的自動管理功能。

一般來說,CVS的權限設定單一,通常隻能通過CVSROOT/passwd, CVSROOT/readers,CVSROOT/writers文 件,同時還要設定CVS REPOS的實體目錄權限來完成權限設定,無法完成複雜的權限控制;

但是CVS通過CVS ROOT目錄下的腳本,提供了相應功 能擴充的接口,不但可以完成精細的權限控制,還能完成更加個性化的功能。

CVS是開發源碼軟體,無需支付購買費用。

同樣因為CVS是開發源碼軟體,沒有生産廠家為其提供技術的支援。如發現問題,通常隻能靠自己查找網上的資料進行解決。

3,SVN

SVN全名Subversion,即版本控制系統。

SVN與CVS一樣,是一個跨平台的軟體,支援大多數常見的作業系統。

作為一個開源的版本控制系統,Subversion 管理着随時間改變的資料。 這些資料放置在一個中央資料檔案庫中。 這個檔案庫很像一個普通的檔案伺服器, 不過它會記住每一次檔案的變動。 這樣你就可以把檔案恢複到舊的版本, 或是浏覽檔案的變動曆史。

Subversion 是一個通用的系統, 可用來管理任何類型的檔案, 其中包括了程式源碼。

  • SubVersion:實作服務系統的軟體。
  • TortoiseSVN:是SVN用戶端程式,為windows外殼程式內建到windows資料總管和檔案管理系統的
  • Subversion用戶端。
  • SVNService.exe:是專為 SubVersion 開發的一個用來作為 Win32 服務挂接的入口程式。
  • AnkhSVN:是一個專為Visual Studio提供SVN的插件。

4,GIT

Git是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理.

Git 是 Linus Torvalds 為了幫助管理 Linux 核心開發而開發的一個開放源碼的版本控制軟體。

Torvalds 開始着手開發 Git 是為了作為一種過渡方案來替代 BitKeeper,後者之前一直是 Linux 核心開發人員在全球使用的主要源代碼工具。開放源碼社群中的有些人覺得 BitKeeper 的許可證并不适合開放源碼社群的工作,是以 Torvalds 決定着手研究許可證更為靈活的版本控制系統。

盡管最初 Git 的開發是為了輔助 Linux 核心開發的過程,但是我們已經發現在很多其他自由軟體項目中也使用了 Git。例如

很多 Freedesktop 的項目也遷移到了 Git 上。

三,git和svn的差別

1、Git 是分布式的,SVN 不是:

這是 Git 和其它非分布式的版本控制系統,例如 SVN,CVS 等,最核心的差別。

2、Git 把内容按中繼資料方式存儲,而 SVN 是按檔案:

所有的資源控制系統都是把檔案的元資訊隐藏在一個類似 .svn、.git 等的檔案夾裡。

3、Git 分支和 SVN 的分支不同:

分支在 SVN 中一點都不特别,其實它就是版本庫中的另外一個目錄。Git 分支是指針指向某次送出,而 SVN 分支是拷貝的目錄。這個特性使 Git 的分支切換非常迅速,且建立成本非常低。

Git 有本地分支,SVN 無本地分支。在實際開發過程中,經常會遇到有些代碼沒寫完,但是需緊急處理其他問題,若我們使用 Git,便可以建立本地分支存儲沒寫完的代碼,待問題處理完後,再回到本地分支繼續完成代碼。

4、Git 沒有一個全局的版本号,而 SVN 有:

目前為止這是跟 SVN 相比 Git 缺少的最大的一個特征。

5、Git 的内容完整性要優于 SVN:

Git 的内容存儲使用的是 SHA-1 雜湊演算法。這能確定代碼内容的完整性,確定在遇到磁盤故障和網絡問題時降低對版本庫的破壞。
06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

四,git安裝

可以參考這裡@學為所用【Windows系統Git安裝教程(詳解Git安裝過程)】

五,git工作區域

以下内容來自@雨點的名字【【Git】(1)---工作區、暫存區、版本庫、遠端倉庫】

06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea
06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

六,git檔案操作

(1)建立檔案夾,進入到該目錄,右鍵打開git bash

(2)在檔案夾内初始化git(建立git倉庫)

 指令:git init (會生成一個.git的隐藏檔案)

(3)倉庫中添加資訊

git add 檔案名-> 結果:new file:檔案名 //工作區到暫存區

git add * 添加所有檔案

git commit -m ‘描述資訊’ //暫存區到倉庫

過程中可以使用git status檢視狀态(下圖表示在暫存區删除了檔案,但是尚未送出)

06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea
執行完commit後 
06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

(4)倉庫中修改資訊

 修改完成後按照原來的程式再執行

(5)删除檔案

 git rm 檔案名 如果想要删除檔案夾,則添加參數 -r

 git commit -m ‘送出描述’

 (6)删除檔案夾

當我們需要删除暫存區或分支上的檔案, 但本地又需要使用, 隻是不希望這個檔案被版本控制, 可以使用 git rm -r --cached 檔案夾名稱

執行個體: git rm -r --cached target 删除暫存區target檔案夾

git commit -m '删除了target' 送出,添加操作說明(送出操作到版本庫)

七,git遠端伺服器介紹

1,GitHub

06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

通過git管理github托管項目代碼

gitHub是一個面向開源及私有軟體項目的托管平台,因為隻支援git 作為唯一的版本庫格式進行托管,故名gitHub。

gitHub于2008年4月10日正式上線,除了git代碼倉庫托管及基本的 Web管理界面以外,還提供了訂閱、讨論組、文本渲染、線上檔案編輯器、協作圖譜(報表)、代碼片段分享(Gist)等功能。目前,其注冊使用者已經超過350萬,托管版本數量也是非常之多,其中不乏知名開源項目 Ruby,on Rails、jQuery、 python等。

2,GitLab

06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

GitHub 和 GitLab 都是基于 web 的 Git 倉庫,使用起來二者差不多,它們都提供了分享開源項目的平台,為開發團隊提供了存儲、分享、釋出和合作開發項目的中心化雲存儲的場所。

GitHub 作為開源代碼庫,擁有超過 900 萬的開發者使用者,目前仍然是最火的開源項目托管平台,GitHub 同時提供公共倉庫和私有倉庫,但如果使用私有倉庫,是需要付費的。

GitLab 解決了這個問題,你可以在上面建立私人的免費倉庫。

GitLab 讓開發團隊對他們的代碼倉庫擁有更多的控制,相比較 GitHub , 它有不少特色:

  • (1) 允許免費設定倉庫權限;
  • (2) 允許使用者選擇分享一個 project 的部分代碼;
  • (3) 允許使用者設定 project 的擷取權限,進一步提升安全性;
  • (4) 可以設定擷取到團隊整體的改進進度;
  • (5) 通過 innersourcing 讓不在權限範圍内的人通路不到該資源;

是以,從代碼的私有性上來看,GitLab 是一個更好的選擇。但是對于開源項目而言,GitHub 依然是代碼托管的首選。

3,Gitee

06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

碼雲(Gitee)是 OSCHINA 推出的代碼托管協作開發平台,支援 Git 和 SVN,提供免費的私有倉庫托管。2016 年推出企業版,提供企業級代碼托管服務,成為開發領域領先的 SaaS 服務提供商。

使用 GitHub 時,國内的使用者經常遇到的問題是通路速度太慢,有時候還會出現無法連接配接的情況。如果你希望體驗 Git 飛一般的速度,可以使用國内的代碼托管與開發協作平台 —— Gitee。

除了通路速度更快以外,Gitee 還提供了免費的私有倉庫供個人開發者使用。同時,Gitee 也有着國内數一數二的開源生态,這裡有非常多的優秀開源項目和開發者,你可以在這裡和他們無障礙地溝通交流,不管是找開源項目還是分享自己的開源項目,Gitee 都是極佳的選擇。

作為國内代碼托管平台的佼佼者,目前已經有超過 500 萬名開發者在 Gitee 上托管了 1000 餘萬個代碼倉庫,而其提供了研發管理、代碼托管、文檔管理服務的企業版的服務客戶也超過了 10 萬家。

八,gitee操作

1,基本概念

(1) 倉庫(Repository)

倉庫即你的項目,你想在github上開源一個項目,那就必須要建立一個repository,如果你開源的項目多,那你擁有的倉庫也就很多

(2) 收藏(star)

倉庫首頁的star按鈕,意思是收藏項目的人數。

(3) 複制克隆項目(fork)

在原項目的基礎上新增代碼和結構,也可以了解成拿别人的代碼進行二次加工。Fork後,會在自己賬号下,生成自己的相同倉庫

(4) 發起請求(pull request,簡稱PR)

這個是基于fork的,當其他人改進完代碼後,想将這個項目合并到原項目,則這個時候會給你發起一個pull request。如果接受了請求,這個時候就可以擁有改進的項目了

(5) 關注(watch)

即觀察,可以随時看到被關注項目的更新

(6) 事務卡片(Issue)

發現代碼有bug,但是目前還沒成型,需要讨論時使用當别人發現你的問題時,會提個lssue

(7) Gitee首頁

賬号建立完後,點選導航欄gitee圖示即可進入首頁。左側顯示功能清單,右側顯示倉庫動态

(8) 倉庫首頁

倉庫首頁主要顯示項目的資訊,如:代碼,版本,收藏,關注,fork等
06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

九,git初始化

設定登入的賬戶資訊: 使用者名和郵箱位址是本地git用戶端的一個變量,每次commit都會用使用者名和郵箱紀錄。

  • 設定使用者名: git config --global user.name ‘使用者名’
  • 設定使用者名郵箱: git config --global user.email ‘郵箱’
  • 檢視設定: git config --list

執行個體: git config --global user.email ‘[email protected]’

指令執行位置:桌面右擊->git base here

注意:該設定在gitee倉庫首頁顯示誰送出的檔案,如果想要修改使用者資訊,則将該指令再執行一次

06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

十,git操作遠端倉庫

目的:備份,實作代碼共享

步驟一

建立一個檔案夾并進行初始化git init

git克隆操作:将遠端倉庫的項目複制到本地。指令: git clone 倉庫位址

06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

步驟二

git push 将本地倉庫送出到遠端(注意先送出到緩存區add,再送出到倉庫commit,最後送出遠端push)

06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

步驟三

要更新你的本地倉庫至最新改動,執行:git pull

從非預設位置更新到指定的url。

git pull http://git.example.com/project.git
           

十一,git關聯idea

Idea自身路徑需要在英文目錄

1)Idea配置Git用戶端:

File — Settings---Version Control — Git關聯Git安裝目錄下的bin/git.exe執行檔案(這個就是git的用戶端指令,類似svn.exe)

06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

2)下載下傳gitee插件

06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

3)添加資訊

注意:登入時,使用郵箱登入

06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea
06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

4)本地項目上傳到伺服器

06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

5)伺服器項目下載下傳到本地

06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea
06-JavaWEB_Git一,版本控制的概念二,版本控制工具三,git和svn的差別四,git安裝五,git工作區域六,git檔案操作七,git遠端伺服器介紹八,gitee操作九,git初始化十,git操作遠端倉庫十一,git關聯idea

章節彙總在這裡(づ ̄3 ̄)づ╭❤~@&再見螢火蟲&【06-JavaWEB】

對學習Java感興趣的同學歡迎加入QQ學習交流群:1126298731

有問題歡迎提問,大家一起在學習Java的路上打怪更新!(o゜▽゜)o☆[BINGO!]