git是分布式版本管理工具,一台電腦既可以是客戶端,也可以是服務端。工作過程中可以斷開網絡。svn是集中式版本管理工具,一台服務器控制很多客戶端,使用過程不能斷網。
git的優點有:適合分布式開發,強調個體,公共服務器壓力和數據量都不會太大,速度快,靈活,可以離線工作。
svn的優點有:管理方便,邏輯明確,集中式管理更能保證安全性,適合人數不多的項目開發。
git中的三個概念:
1、版本庫:在初始化git版本庫之后會生成一個隱藏的文件, .git可以將該文件理解為git的版本庫repository;
2、工作區:項目目錄;
3、暫存區:.git目錄中的index文件就是暫存區,同時,git還為我們自動生成一個master分支以及指向該分支的指針head在.git文件夾中。
三者關系可以理解為我們打開開發環境如Hbuilder,里面的內容即工作區的內容,在工作區里面有的代碼以及配置文件等我們需要提交到版本庫里面,最終是到了分支master的上面,暫存區只是一個臨時保存修改文件的地方。
注意git需要先安裝服務端,再安裝客戶端。
git常用的操作命令:
1、檢出git的項目倉庫:項目目錄下右鍵單擊git bash;
本地創建倉庫:git init ;git status可查看當前被git管理的文件,空文件夾git不管理。
2、本地項目文件夾修改或新增的文件要先添加到本地的項目倉庫下:git add 文件全稱(包括擴展名) ;
僅將修改文件添加到暫存區:git add -u ;
添加當前目錄的所有 文件到暫存區:git add . 或 git add --all 或 git add * 或git add -A; 工作中推薦用git add . 方便快捷不出錯。
3、添加好文件后要把暫存區的文件提交到當前分支上:git commit -m "提交日志" (此處一定要寫);
查看當前分支的版本歷史(查看日志信息):git log;window系統下會自動退出,一些其他系統需要手動使用英文q退出。
4、回退到某個版本上:a: git reset --hard 日志版本號前六位 , 回到指定版本處;在此版本后的版本不會存在;
git reserve + 版本號前六位 回到指定版本處,但是會生成一個新版本;在此版本后的版本依然存在
5、恢復剛剛手動刪除的文件:git checkout 提交生成碼 文件全程 ;
6、分支操作:
查看分支:git branch ;會列出本地所有分支;
創建分支:git checkout 分支名稱 ;
切換分支:git checkout 分支名稱;
創建並切換到某個分支上(合並上面兩個操作):git checkout -b 分支名稱;
刪除分支:git branch -d 分支名稱;
在master分支上合並分支:先切換到master分支上再輸入命令:git merge 分支名稱;
7、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;
再進行各種修改添加提交操作。
8、ctrl + CC強制退出。
