Git(一)

Git是一個開源的分佈式版本控制系統,用於敏捷高效地處理任何或小或大的項目。git

GIT不只僅是個版本控制系統,它也是個內容管理系統(CMS),工做管理系統等。算法

若是你是一個具備使用SVN背景的人,你須要作必定的思想轉換,來適應GIT提供的一些概念和特徵。vim

Git 與 SVN 區別點:windows

  • 一、GIT是分佈式的,SVN不是:這是GIT和其它非分佈式的版本控制系統,例如SVN,CVS等,最核心的區別。bash

  • 二、GIT把內容按元數據方式存儲,而SVN是按文件:全部的資源控制系統都是把文件的元信息隱藏在一個相似.svn,.cvs等的文件夾裏。網絡

  • 三、GIT分支和SVN的分支不一樣:分支在SVN中一點不特別,就是版本庫中的另外的一個目錄。eclipse

  • 四、GIT沒有一個全局的版本號,而SVN有:目前爲止這是跟SVN相比GIT缺乏的最大的一個特徵。分佈式

  • 五、GIT的內容完整性要優於SVN:GIT的內容存儲使用的是SHA-1哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題時下降對版本庫的破壞。svn

 

 

我用的是windows系統。安裝包地址在這裏:https://git-scm.com/download/win工具

 

配置

Git 提供了一個叫作 git config (git-bash.exe這個文件) 的工具,專門用來配置或讀取相應的工做環境變量。

這些環境變量,決定了 Git 在各個環節的具體工做方式和行爲。這些變量能夠存放在如下三個不一樣的地方:

  • mingw64\etc\gitconfig 文件:系統中對全部用戶都廣泛適用的配置。若使用 git config 時用 --system 選項,讀寫的就是這個文件。
    $ git config --system

     

  • ~/.gitconfig 文件:用戶目錄下的配置文件只適用於該用戶。若使用 git config 時用 --global 選項,讀寫的就是這個文件。$ git config --global
    $ git config --global

     

  • 當前項目的 Git 目錄中的配置文件(也就是工做目錄中的 .git/config 文件):這裏的配置僅僅針對當前項目有效。每個級別的配置都會覆蓋上層的相同配置,因此 .git/config 裏的配置會覆蓋 /etc/gitconfig 中的同名變量。

 

配置用戶信息:

$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com

 

配置版本差別分析工具

$ git config --global merge.tool vimdiff

 

查看當前配置

$ git config --list

 

Git工做流程

 

基本上跟SVN差很少。

 

基本概念

使用git的話咱們主要管理兩個區:

工做區:工做目錄

版本庫:版本庫內又有master 目錄與暫存區

 

當執行 "git reset HEAD" 命令時,暫存區的目錄樹會被重寫,被 master 分支指向的目錄樹所替換,可是工做區不受影響。

當執行 "git rm --cached <file>" 命令時,會直接從暫存區刪除文件,工做區則不作出改變。

當執行 "git checkout ." 或者 "git checkout -- <file>" 命令時,會用暫存區所有或指定的文件替換工做區的文件。這個操做很危險,會清除工做區中未添加到暫存區的改動。

當執行 "git checkout HEAD ." 或者 "git checkout HEAD <file>" 命令時,會用 HEAD 指向的 master 分支中的所有或者部分文件替換暫存區和以及工做區中的文件。這個命令也是極具危險性的,由於不但會清除工做區中未提交的改動,也會清除暫存區中未提交的改動。

 

Git 建立倉庫

執行

git init

會建立一個倉庫在當前目錄下

 

執行

git init newrepo

 

會在newrepo下建立倉庫目錄

若是當前目錄下有幾個文件想要歸入版本控制,須要先用 git add 命令告訴 Git 開始對這些文件進行跟蹤,而後提交:

$ git add *.c
$ git add README
$ git commit -m '初始化項目版本'

 

咱們使用 git clone 從現有 Git 倉庫中拷貝項目(相似 svn checkout)。

git clone <repo>

 

若是咱們須要克隆到指定的目錄,可使用如下命令格式:

git clone <repo> <directory>

 

 

接下來是eclipse下使用git的一些記錄

提交項目到本地

右鍵項目→tream→shera project 會出現以下彈窗(今天不能上傳圖片不知道爲啥)

而後選擇use or create repository in parent folder of project 可建立倉庫

或者create出一個新的路徑做爲你的倉庫路徑

而後像svn那樣在team中選擇synchronize Workspace 對比代碼差別。初次建庫通常沒什麼差別

右鍵 commit.這個時候會看到三個選框

點開有差別文件的選框。右鍵add to index打包爲一個標籤

而後填寫commit信息

點擊commit 則提交了代碼

 

提交項目到網上

你在本地提交了項目以後可選擇 

項目右鍵>>team>>remote>>push 

選擇你在碼雲上建立的項目分配的路徑

你的輸入你的帳戶名密碼下一步

第二個頁面第一個下拉框選擇master 

點擊add Speace……

建立出update以後勾選 force update 點擊finsh

 

拉項目須要在 eclipse上面選擇window

show view  選擇other

而後找到管理git倉庫的Git repositories

而後控制框內第一個add……能夠增長倉庫進行管理,輸入路徑就能夠選擇該路徑下的倉庫

而後添加到倉庫管理中去

跟svn不一樣的是,git拉項目須要右鍵 import Project

 

今晚不能截圖不知道爲啥。。將就着記錄吧。

相關文章
相關標籤/搜索