GIT是一款免費、開源的分佈式版本控制系統,用於敏捷高效地處理任何或小或大的項目。git
Git 與 SVN 區別點:算法
一、GIT是分佈式的,SVN不是:這是GIT和其它非分佈式的版本控制系統,例如SVN,CVS等,最核心的區別。服務器
二、GIT把內容按元數據方式存儲,而SVN是按文件:全部的資源控制系統都是把文件的元信息隱藏在一個相似.svn,.cvs等的文件夾裏。網絡
三、GIT分支和SVN的分支不一樣:分支在SVN中一點不特別,就是版本庫中的另外的一個目錄。app
四、GIT沒有一個全局的版本號,而SVN有:目前爲止這是跟SVN相比GIT缺乏的最大的一個特徵。ssh
五、GIT的內容完整性要優於SVN:GIT的內容存儲使用的是SHA-1哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題時下降對版本庫的破壞。分佈式
GIT配置svn
$git config --global user.name "自定製名字" $git config --global user.email "自定製郵箱" $git init # 會生成一個git文件,用來追蹤管理版本庫 # 生成ssh key mkdir ~/.ssh # 生成文件夾,若是已有該文件夾可跳過這一步 ssh-keygen -t rsa -C 郵箱 # 按三次回車,最後在.ssh文件夾下獲得id_rsa和id_rsa.pub兩個文件。 # id_rsa中的內容即是私鑰,id_rsa.pub中的內容即是公鑰。
GIT工做中用的命令學習
#提交代碼 $git add .# .表示全部,也能夠是指定文件的名字,將文件添加到暫存區 $git commit -m "描述信息" # 將文件從暫存區添加到當前分支(描述信息必定要好好寫) #查看日誌(可用於版本回退) $git log # 查看從最遠到最近的提交日誌 $git log --pretty = online # 簡化日誌 $git reset--hard 日誌中的字符串 # 版本回退到指定版本狀態 $git reflog # 記錄每一次命令 #查看狀態及「某個地方」(一般用於處理bug) $git status # 查看狀態 $git stash # 將當前工做區的代碼暫存到「某個地方」中,一般這是咱們要去處理緊急任務如解bug $git stash pop # 從「某個地方」中取回原先的代碼 $git stash list # 查看「某個地方」的全部存儲記錄 $git stash apply 編號 # 取出指定編號至工做區 $git stash drop 編號 # 刪除指定編號 $git stash clear # 清空「某個地方」 #分支命令 $git branch 分支名 # 建立分支 $git branch # 查看當前所在分支 $git checkout 分支名 # 切換到指定分支 $git branch -d 分支名 # 刪除指定分支 $git push origin --delete 分支名 # 刪除遠程分支 $git checkout -b 分支名 # 建立並切換到該分支 $git checkout -b 本地分支名x origin/遠程分支名x # 建立並切換到該分支,分支代碼與遠程分支x上代碼相同 $git merge 分支名 # 將分支名中的代碼與當前區域的代碼合併 #代碼下拉及上傳(master爲分支名) $git pull origin master # 將代碼拉下來進行工做 $git push origin master # 工做完畢將代碼上傳至GIT #新電腦第一次使用時 $git clone add origin 目標庫地址 # 克隆目標庫 $git init # 會生成一個Git文件,用來跟蹤管理版本庫 $git remote add origin XXX # 建立遠程倉庫,XXX爲你的Git倉庫地址 $git pull origin master # 將代碼拉下來進行工做 $git push origin master # 工做完畢將代碼上傳至GIT
其餘fetch
$git log --graph --pretty = online --abbrev--commit # 查看當前分支合併狀況 $git remote -v # 查看遠程倉庫信息 #打標籤 $git tag #查看標籤 $git tag 標籤名 # 打標籤 $git tag 標籤名 id # 給指定id打標籤 $git tag -a 標籤名 -m"描述信息" id # 給指定id打上加描述信息的標籤 #自定製 $git config --global alias.別名 真名 #給命令配置別名,更方便操做 $git config --global alias.last "log-1" #取別名,以後就能夠用$git last來查看最後一次提交的信息