Git 是一款免費的、開源的、分佈式的版本控制系統。旨在快速高效地處理不管規模大小的任何軟件工程。git
每個 Git克隆 都是一個完整的文件庫,含有所有歷史記錄和修訂追蹤能力,不依賴於網絡鏈接或中心服務器。其最大特點就是「分支」及「合併」操做很是快速、簡便。github
SVN是集中式版本控制系統,版本庫是集中放在中央服務器的,而幹活的時候,用的都是本身的電腦,因此首先要從中央服務器哪裏獲得最新的版本,而後幹活,幹完後,須要把本身作完的活推送到中央服務器。集中式版本控制系統是必須聯網才能工做,若是在局域網還能夠,帶寬夠大,速度夠快,若是在互聯網下,若是網速慢的話,就納悶了。web
Git是分佈式版本控制系統,那麼它就沒有中央服務器的,每一個人的電腦就是一個完整的版本庫,這樣,工做的時候就不須要聯網了,由於版本都是在本身的電腦上。既然每一個人的電腦都有一個完整的版本庫,那多我的如何協做呢?好比說本身在電腦上改了文件A,其餘人也在電腦上改了文件A,這時,大家兩之間只需把各自的修改推送給對方,就能夠互相看到對方的修改了。bash
若是要在 Linux 上安裝預編譯好的 Git 二進制安裝包,能夠直接用系統提供的包管理工具。在 Fedora 上用 yum安裝:服務器
$ yum install git-core
在 Ubuntu 這類 Debian 體系的系統上,能夠用 apt-get 安裝:網絡
$ apt-get install git
在 Mac 上安裝 Git 有兩種方式。最容易的當屬使用圖形化的 Git 安裝工具,界面如圖 1-7,下載地址在:ssh
http://code.google.com/p/git-osx-installer
另外一種是經過 MacPorts (http://www.macports.org
)安裝。若是已經裝好了 MacPorts,用下面的命令安裝 Git:分佈式
$ sudo port install git-core +svn +doc +bash_completion +gitweb
這種方式就不須要再本身安裝依賴庫了,Macports 會幫你搞定這些麻煩事。通常上面列出的安裝選項已經夠用,要是你想用 Git 鏈接Subversion 的代碼倉庫,還能夠加上 +svn 選項,具體將在第八章做介紹。(譯註:還有一種是使用homebrew(https://github.com/mxcl/homebrew
):brewinstall git
)svn
在 Windows 上安裝 Git 一樣輕鬆,有個叫作 msysGit 的項目提供了安裝包,能夠到 GitHub 的頁面上下載 exe安裝文件並運行:工具
http://msysgit.github.com/
完成安裝以後,就可使用命令行的 git
工具(已經自帶了ssh 客戶端)了,另外還有一個圖形界面的 Git 項目管理工具。
git init
cd到你本地的工程目錄,初始git使用環境,當前目錄下會建立一個.git目錄。
我這是以前init過了,因此會提示reinit。
git add [file/dir]
這樣,把文件添加到git本地管理目錄中,這相似Svn的add操做,實際上,尚未提交到本地管理倉庫。利用
git status
經過git status能夠看到,剛纔的添加操做,對於本地倉庫的文件有沒有什麼變化?
下一步,須要把readme.txt添加到本地倉庫中去,利用:
git commit -m '你的註釋說明'
這樣,就把文件添加到了本地Git倉庫了。
固然,你能夠再運行git status,看一下,還有沒有沒提交的代碼。如今本地倉庫的提交已完成,下節會講到如何把本地倉庫和遠程Github倉庫相關聯。
先註冊github帳號,因爲你的本地Git倉庫和github倉庫之間的傳輸是經過SSH加密的,因此須要一點設置:
在用戶主目錄下,看看有沒有.ssh目錄,若是有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件,若是有的話,直接跳過此以下命令,若是沒有的話,打開命令行,輸入以下命令:
ssh -keygen -t rsa –C 「youremail@example.com」
因爲我本地此前運行過一次,因此本地有,以下所示:
本人是記不得路徑的(建議能夠安裝everything這個軟件,找文件很是方便)
登陸github,打開「settings」中的SSH Keys頁面,而後點擊「Add SSH Key」,填上任意title,在Key文本框裏黏貼github_rsa.pub文件的內容。
咱們已經在本地建立了一個Git倉庫後,又想在github建立一個Git倉庫,而且但願這兩個倉庫進行遠程同步,這樣github的倉庫能夠做爲備份,又能夠其餘人經過該倉庫來協做。
點擊」Create repository「,便建立了一個遠程倉庫。
目前,在GitHub上的這個test
倉庫仍是空的,GitHub告訴咱們,能夠從這個倉庫克隆出新的倉庫,也能夠把一個已有的本地倉庫與之關聯,而後,把本地倉庫的內容推送到GitHub倉庫。
如今,咱們根據GitHub的提示,在本地倉庫下運行命令:
git remote add origin https://github.com/commandow/LeetCode.git
若是提示:
提示出錯信息:fatal: remote origin already exists.
找到你的github的安裝路徑,個人是C:\Users\Administrator\AppData\Local\GitHub\PortableGit_054f2e797ebafd44a30203088cd3d58663c627ef\etc
找到一個名爲gitconfig的文件,打開它把裏面的[remote "origin"]和下面對應的幾行刪掉便可。
git push –u origin master
咱們第一次推送master分支時,加上了 –u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在之後的推送或者拉取時就能夠簡化命令(不用加-u)。
可是敲入命令後,出現以下問題。
緣由是:在Github新建目錄時,同時選擇了建立一個readme.txt,這樣形成了遠程倉庫和本地倉庫版本不一致。
解決辦法:
git pull [remote_path] master
至關於把遠程目錄拉下作一個代碼版本合併的操做。
Ok,至此,整個工程就添加上去了