Git是 Linus Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的分佈式版本控制系統。git
SVN是集中式的。算法
Git沒有中央服務器,每臺電腦就是一個完整的版本庫 ,工做無需聯網下載其餘版本。能夠遠程連一個遠程倉庫bash
方便多端協做。目前較爲熱門的代碼託管社區GitHub(默認你託管的是開源,私有化須要繳費) 國內的有gitee等等也能夠本身搭建私服服務器
與遠程倉庫同步支持兩種不一樣的通訊協議ssh 和HTTPS 推薦使用ssh(Secure Shell)協議 比HTTP更快並且不須要每次都要驗證用戶名和密碼‘ssh
只需生成一個ssh密匙添加到倉庫的許可列表中!分佈式
git-bash中集成了ssh功能只需經過命令 ssh-keygen -t rsa(一種非對稱加密算法)而後一直回車肯定就好加密
最後在C:\Users\用戶名\.ssh生成id_rsa私匙 id_rsa.pub公匙(將公匙添加到遠程倉庫就好了)版本控制
1) 若是已經有本地倉庫,而且想要與遠程倉庫關聯,通常須要兩步:指針
a) 經過git remote add origin + 遠程倉庫地址 進行關聯日誌
b) 經過git push -u origin master推送本地倉庫修改到遠程倉庫
c) 經過git pull 命令拉取遠程庫數據
2) 若是沒有本地倉庫,先建立遠程倉庫,而後經過git clone + 遠程倉庫地址 進行克隆並建立本地倉庫
Git有工做區,暫存區和版本庫
.git一個隱藏目錄就是版本庫
版本庫裏面有暫存區stage(或者叫index)還有git爲咱們建立的第一個分支master及指向master的一個指針HEAD
添加文件通常分爲兩步 1. git add fileName(帶後綴) 加入暫存區 2. git commit -m 「日誌信息」 提交到當前分支
好處, 能夠將須要提交的文件一塊兒放入暫存區 而後一次性提交 減小了版本數
一些經常使用操做的命令
差別比較: git diff HEAD --fileName(帶後綴)比較工做區和版本庫裏面最新版本的區別
查看狀態: git status //nothing to commit , working tree clean 表示工做區很乾淨沒有任何操做須要提交
日誌查看:git log(--pretty=oneline)參數可加可不加 查看最第一版本到指針指到的版本(好比有五個版本但指針回退到第三個版本 那就只後面兩個版本就不能被查看到)
git reflog 查看之前的每次執行動做。用來查看全部的版本信息
版本回退:git reset --hard HEAD^回退到上一個版本
gitreset --hard commit.id 經過id來指定回退到指定版本!