git學習一 git基礎介紹

一:什麼是分佈式版本控制系統?

把代碼倉庫完整鏡像下來,這樣一來,任何一處協同工作用的服務器發生故障,事後都可以用任何一個鏡像出來的本地倉庫恢復。因爲每一次克隆操作,實際上都是一次對代碼倉庫的完整備份。

更進一步,許多這類系統都可以指定和若干不同的遠端代碼倉庫進行交互。因此你就可以在同一個項目中,分別和不同工作小組的人相互協作。

二:什麼是Git

Git是一款免費的,開源的,分佈式版本控制系統。每一個Git工作目錄是一個帶有完整歷史記錄和版本信息的倉庫,不依賴於網絡和中央服務器

補充:git與github的區別?

git是一種版本控制系統。跟svn、cvs是同級的概念。
github是一個網站,給用戶提供git服務。這樣你就不用自己部署git系統,直接用註冊個賬號,用他們提供的git服務就可以。
那是不是隻有一個提供可以git服務的網站呢,答案是否定的,除了那個全世界最大的代碼網站(github),還有一些小衆的gitcafe、gitlab…等等,以及受國內開發者歡迎的oschinagit,當然是用這些服務都是必須註冊使用的,另外再強調一件事情,越來越多的公司都開始用git進行管本控制了,公司肯定是自己搭建git服務了,最常見的是gitlab。

三:使用git有什麼好處?

  1. 更順暢的工作流程,開發過程中,可以完全離線操作。
  2. 快速,git分佈式架構使得本地倉庫含有所有的歷史版本信息,你可以在不同的版本之間快速切換
  3. 彈性的本地分支,在svn下,你建一個分支需要把源代碼複製到另外一個文件夾,而在git下,創建分支代價非常小,只需一個命令
  4. 倉庫目錄結構簡潔,用git複製一個項目,只會在項目根目錄創建一個.git的目錄,而其他目錄很乾淨
  5. 內容按元數據方式存儲,所有的版本信息夠位於.git目錄下
  6. 完整性好更易於協助開發
  7. 用戶羣大,github上更是有無數個代碼倉庫

四:git基本工作原理?

git有三種狀態:已提交(committed)已修改(modified)已暫存(staged)

已提交(committed):表示數據已經安全的保存在本地數據庫中。

已修改(modified):表示修改文件,但是還沒保存到數據庫中。

已暫存(staged):表示對一個已修改文件的當前版本做了標記,使之包含在下次提交的快照中。

由此引入git項目的三個工作區域的概念:git倉庫,工作目錄以及暫存區域。

git倉庫目錄:git用來保存項目的元數據和對象數據庫的地方。這是git中最重要的部分,從其它計算機克隆倉庫時,拷貝的就是這裏的數據。

工作目錄:對項目的某個版本獨立提取出來的內容。這些從git倉庫的壓縮數據庫中提取出來的文件,放在磁盤上供你使用或修改。

暫存區域:一個文件,保存下次將提交的文件列表信息,一般在git倉庫目錄中,有時候也被稱作”索引“。

基本的git工作流程如下:

  1. 在工作目錄中修改文件。
  2. 暫存文件,將文件的快照放入暫存區域。
  3. 提交更新,找到暫存區域的文件,將快照永久性保存到git倉庫目錄。

如果git目錄中保存着的特定版本文件,就屬於已提交狀態。如果做了修改並已放入暫存區域,就屬於已暫存狀態。如果自上次取出後,做了修改但還沒有放到暫存區域,就屬於已修改狀態。

五:git與svn的區別?(重點)

 1.git是分佈式版本控制系統,svn是集中式版本控制系統。即:svn版本庫是集中放在中央服務器的,而幹活的時候,用的都是自己電腦,所以首先要從中央服務器那裏得到最新版本,然後幹活,幹完後,需要把自己做完的活推送到中央服務器,並且必須聯網才能幹活;git沒有中央服務器,每個人的電腦就是一個完整的版本庫,這樣工作的時候不需要聯網,多個人協作工作只需把各自修改的文件推送給對方,就可以互相看到對方的修改。
 2.git把內容按元數據方式存儲,svn按文件方式存儲。即:所有的資源控制系統都是把文件的元信息隱藏一個類似.svn文件夾裏;.git目錄是處於你的機器上的一個克隆版的版本庫,它擁有中心版本庫上所有的東西,例如標籤,分支,版本記錄等。

3.本地增加分支:Git本地和服務器端結構都很靈活,所有版本都存儲在一個目錄中,你只需要進行分支的切換即可達到在某個分支工作的效果,

而SVN則完全不同,如果你需要在本地試驗一些自己的代碼,只能本地維護多個不同的拷貝,每個拷貝對應一個SVN服務器地址

4.分佈式提交:Git 可以本地提交代碼,Git有利於將一個大任務分解,進行本地的多次提交,而SVN只能在本地進行大量的一次性更改,導致將來合併到主幹上造成巨大的風險

5.日誌查看:Git 的代碼日誌是在本地的,可以隨時查看,SVN的日誌在服務器上的,每次查看日誌需要先從服務器上下載下來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章