GIT簡介以及在Centos上的安裝

Git是一個分佈式的版本控制系統。做爲一個分佈式的版本控制系統,在Git中並不存在主庫這樣的概念,每一份複製出的庫均可以獨立使用,任何兩個庫之間的不一致之處均可以進行合併。
jquery

GIT最初是由Linus Benedict Torvalds爲了更有效地管理Linux內核開發而創立的分佈式版本控制軟件,與經常使用的版本控制工具如CVS、Subversion不一樣,它沒必要服務器端軟件支持,速度和效率也有着至關程度的提升。c++


GIT和SVN之間的五個基本區別git

GIT是分佈式的,SVN不是github

GIT把內容按元數據方式存儲,而SVN是按文件web

GIT分支和SVN的分支不一樣服務器

GIT沒有一個全局的版本號,而SVN有app

GIT的內容完整性要優於SVNcurl


1、安裝依賴軟件webapp

    yum install zlib zlib-devel openssl openssl-devel libcurl-devel gcc gcc-c++ -y分佈式


2、下載和安裝GIT

  從 http://git-scm.com/download 下載GIT或者使用wget命令獲取

  $ wget http://distfiles.macports.org/git/git-2.1.1.tar.gz


  解壓後切換到其目錄

  $ tar xvfj git-1.7.6.tar.bz2

  $ cd git-1.7.6

  使用默認配置進行安裝,若是想修改配置,可使用 ./configure --help 來獲取幫助

  $ ./configure

  $ make

  $ make install


3、初始化配置

  GIT默認安裝在 /usr/local/bin ,安裝以後能夠驗證一下是否安裝好

  $ whereis git 查看安裝路徑

  git: /usr/local/bin/git


  $ git  --version 查看版本

  git version 1.7.6


  $ git  --help  查看幫助信息


4、git命令

一、 Git 命令初識

在正式介紹Git命令以前,先介紹一下Git 的基本命令和操做,對Git命令有一個整體的認識


示例:從Git 版本庫的初始化,一般有兩種方式:

1)git clone:這是一種較爲簡單的初始化方式,當你已經有一個遠程的Git版本庫,只須要在本地克隆一份

例如:git  clone  git://github.com/someone/some_project.git   some_project 


上面的命令就是將'git://github.com/someone/some_project.git'這個URL地址的遠程版本庫,徹底克隆到本地some_project目錄下



2)git init 和 git remote:這種方式稍微複雜一些,當你本地建立了一個工做目錄,你能夠進入這個目錄,使用'git init'命令進行初始化;Git之後就會對該目錄下的文件進行版本控制,這時候若是你須要將它放到遠程服務器上,能夠在遠程服務器上建立一個目錄,並把可訪問的URL記錄下來,此時你就能夠利用'git remote add'命令來增長一個遠程服務器端,

例如:git  remote  add  origin  git://github.com/someone/another_project.git


上面的命令就會增長URL地址爲'git: //github.com/someone/another_project.git',名稱爲origin的遠程服務器,之後提交代碼的時候只須要使用 origin別名便可



二、 Git 經常使用命令

1) 遠程倉庫相關命令 

檢出倉庫:        $ git clone git://github.com/jquery/jquery.git


查看遠程倉庫:$ git remote -v


添加遠程倉庫:$ git remote add [name] [url]


刪除遠程倉庫:$ git remote rm [name]


修改遠程倉庫:$ git remote set-url --push [name] [newUrl]


拉取遠程倉庫:$ git pull [remoteName] [localBranchName]


推送遠程倉庫:$ git push [remoteName] [localBranchName]



*若是想把本地的某個分支test提交到遠程倉庫,並做爲遠程倉庫的master分支,或者做爲另一個名叫test的分支,以下: 

$git push origin test:master         // 提交本地test分支做爲遠程的master分支


$git push origin test:test              // 提交本地test分支做爲遠程的test分支 



2)分支(branch)操做相關命令


查看本地分支:$ git branch


查看遠程分支:$ git branch -r


建立本地分支:$ git branch [name] ----注意新分支建立後不會自動切換爲當前分支


切換分支:$ git checkout [name]


建立新分支並當即切換到新分支:$ git checkout -b [name]


刪除分支:$ git branch -d [name] ---- -d選項只能刪除已經參與了合併的分支,對於未有合併的分支是沒法刪除的。若是想強制刪除一個分支,可使用-D選項


合併分支:$ git merge [name] ----將名稱爲[name]的分支與當前分支合併


建立遠程分支(本地分支push到遠程):$ git push origin [name]


刪除遠程分支:$ git push origin :heads/[name] 或 $ gitpush origin :[name] 



*建立空的分支:(執行命令以前記得先提交你當前分支的修改,不然會被強制刪乾淨沒得後悔) 

$git symbolic-ref HEAD refs/heads/[name]


$rm .git/index


$git clean -fdx 



3)版本(tag)操做相關命令


查看版本:$ git tag


建立版本:$ git tag [name]


刪除版本:$ git tag -d [name]


查看遠程版本:$ git tag -r


建立遠程版本(本地版本push到遠程):$ git push origin [name]


刪除遠程版本:$ git push origin :refs/tags/[name]


合併遠程倉庫的tag到本地:$ git pull origin --tags


上傳本地tag到遠程倉庫:$ git push origin --tags


建立帶註釋的tag:$ git tag -a [name] -m 'yourMessage'




4) 子模塊(submodule)相關操做命令


添加子模塊:$ git submodule add [url] [path]


如:$git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs



初始化子模塊:$ git submodule init  ----只在首次檢出倉庫時運行一次就行


更新子模塊:$ git submodule update ----每次更新或切換分支後都須要運行一下



刪除子模塊:(分4步走哦)


1) $ git rm --cached [path]


2) 編輯「.gitmodules」文件,將子模塊的相關配置節點刪除掉


3) 編輯「 .git/config」文件,將子模塊的相關配置節點刪除掉


4) 手動刪除子模塊殘留的目錄




5)忽略一些文件、文件夾不提交


在倉庫根目錄下建立名稱爲「.gitignore」的文件,寫入不須要的文件夾名或文件,每一個元素佔一行便可,如


target


bin


*.db




三、 Git 命令詳解


如今咱們有了本地和遠程的版本庫,讓咱們來試着用用Git的基本命令:


git pull:從其餘的版本庫(既能夠是遠程的也能夠是本地的)將代碼更新到本地,例如:'git pull origin master'就是將origin這個版本庫的代碼更新到本地的master主枝,該功能相似於SVN的update


git add:是將當前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示記入了版本歷史中,這也是提交以前所須要執行的一步,例如'git add app/model/user.rb'就會增長app/model/user.rb文件到Git的索引中,該功能相似於SVN的add


git rm:從當前的工做空間中和索引中刪除文件,例如'git rm app/model/user.rb',該功能相似於SVN的rm、del


git commit:提交當前工做空間的修改內容,相似於SVN的commit命令,例如'git commit -m story #3, add user model',提交的時候必須用-m來輸入一條提交信息,該功能相似於SVN的commit


git push:將本地commit的代碼更新到遠程版本庫中,例如'git push origin'就會將本地的代碼更新到名爲orgin的遠程版本庫中


git log:查看歷史日誌,該功能相似於SVN的log


git revert:還原一個版本的修改,必須提供一個具體的Git版本號,例如'git revert bbaf6fb5060b4875b18ff9ff637ce118256d6f20',Git的版本號都是生成的一個哈希


上面的命令幾乎都是每一個版本控制工具所公有的,下面就開始嘗試一下Git獨有的一些命令:


git branch:對分支的增、刪、查等操做,例如'git branch new_branch'會從當前的工做版本建立一個叫作new_branch的新分支,'git branch -D new_branch'就會強制刪除叫作new_branch的分支,'git branch'就會列出本地全部的分支


git checkout:Git的checkout有兩個做用,其一是在不一樣的branch之間進行切換,例如'git checkout new_branch'就會切換到new_branch的分支上去;另外一個功能是還原代碼的做用,例如'git checkout app/model/user.rb'就會將user.rb文件從上一個已提交的版本中更新回來,未提交的內容所有會回滾


git rebase:用下面兩幅圖解釋會比較清楚一些,rebase命令執行後,其實是將分支點從C移到了G,這樣分支也就具備了從C到G的功能

 

git reset:將當前的工做目錄徹底回滾到指定的版本號,假設以下圖,咱們有A-G五次提交的版本,其中C的版本號是 bbaf6fb5060b4875b18ff9ff637ce118256d6f20,咱們執行了'git reset bbaf6fb5060b4875b18ff9ff637ce118256d6f20'那麼結果就只剩下了A-C三個提交的版本


git stash:將當前未提交的工做存入Git工做棧中,時機成熟的時候再應用回來,這裏暫時提一下這個命令的用法,後面在技巧篇會重點講解


git config:利用這個命令能夠新增、更改Git的各類設置,例如'git config branch.master.remote origin'就將master的遠程版本庫設置爲別名叫作origin版本庫,後面在技巧篇會利用這個命令個性化設置你的Git,爲你打造獨一無二的 Git


git tag:能夠將某個具體的版本打上一個標籤,這樣你就不須要記憶複雜的版本號哈希值了,例如你可使用'git tag revert_version bbaf6fb5060b4875b18ff9ff637ce118256d6f20'來標記這個被你還原的版本,那麼之後你想查看該版本時,就可使用 revert_version標籤名,而不是哈希值了

相關文章
相關標籤/搜索