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/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 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
今晚不能截圖不知道爲啥。。將就着記錄吧。