git是分佈式版本管理工具,一臺電腦既能夠是客戶端,也能夠是服務端。工做過程當中能夠斷開網絡。svn是集中式版本管理工具,一臺服務器控制不少客戶端,使用過程不能斷網。git
git的優勢有:適合分佈式開發,強調個體,公共服務器壓力和數據量都不會太大,速度快,靈活,能夠離線工做。github
svn的優勢有:管理方便,邏輯明確,集中式管理更能保證安全性,適合人數很少的項目開發。安全
git中的三個概念:bash
一、版本庫:在初始化git版本庫以後會生成一個隱藏的文件, .git能夠將該文件理解爲git的版本庫repository;服務器
二、工做區:項目目錄;網絡
三、暫存區:.git目錄中的index文件就是暫存區,同時,git還爲咱們自動生成一個master分支以及指向該分支的指針head在.git文件夾中。分佈式
三者關係能夠理解爲咱們打開開發環境如Hbuilder,裏面的內容即工做區的內容,在工做區裏面有的代碼以及配置文件等咱們須要提交到版本庫裏面,最終是到了分支master的上面,暫存區只是一個臨時保存修改文件的地方。svn
注意git須要先安裝服務端,再安裝客戶端。工具
git經常使用的操做命令:fetch
一、檢出git的項目倉庫:項目目錄下右鍵單擊git bash;
本地建立倉庫:git init ;git status可查看當前被git管理的文件,空文件夾git無論理。
二、本地項目文件夾修改或新增的文件要先添加到本地的項目倉庫下:git add 文件全稱(包括擴展名) ;
僅將修改文件添加到暫存區:git add -u ;
添加當前目錄的全部 文件到暫存區:git add . 或 git add --all 或 git add * 或git add -A; 工做中推薦用git add . 方便快捷不出錯。
三、添加好文件後要把暫存區的文件提交到當前分支上:git commit -m "提交日誌" (此處必定要寫);
查看當前分支的版本歷史(查看日誌信息):git log;window系統下會自動退出,一些其餘系統須要手動使用英文q退出。
四、回退到某個版本上:a: git reset --hard 日誌版本號前六位 , 回到指定版本處;在此版本後的版本不會存在;
git reserve + 版本號前六位 回到指定版本處,可是會生成一個新版本;在此版本後的版本依然存在
五、恢復剛剛手動刪除的文件:git checkout 提交生成碼 文件全程 ;
六、分支操做:
查看分支:git branch ;會列出本地全部分支;
建立分支:git checkout 分支名稱 ;
切換分支:git checkout 分支名稱;
建立並切換到某個分支上(合併上面兩個操做):git checkout -b 分支名稱;
刪除分支:git branch -d 分支名稱;
在master分支上合併分支:先切換到master分支上再輸入命令:git merge 分支名稱;
七、git 操做github上的項目:
克隆線上路徑到本地上: git clone 倉庫路徑(eg:http://github.com/Summer/jd.git);
而後各類修改添加功能,完了以後添加git add . 再提交git commit -m "添加了輪播圖";
檢查無誤後上傳到github上:git push -v origin 分支名;此過程須要github用戶名和密碼;
次日上班第一件事就是把代碼拉下來:a: git pull ,他還會直接作一個commit操做;
b: git fetch 只有更新操做 。建議使用 git pull;
再進行各類修改添加提交操做。
八、ctrl + CC強制退出。