做爲一名程序員相信你們必定聽過github,那麼git、github又有怎樣的聯繫呢?若是你還不能熟練的運用這二者,看完本篇文章你就會有一個清晰的認識而且會熟練的運用在平常工做中。linux
Git是一個開源的分佈式版本控制系統,能夠有效、高速地處理從很小到很是大的項目版本管理。git
那麼咱們爲什要用Git?程序員
你們能夠想象這樣一個場景:一個網站不會是自始至終都是一個頁面,若是遇到節日、活動必然要作些頁面的或者交互上的改變;以百度爲例你們都知道每逢節日百度首頁的logo都會變化,與標準版有些許不一樣,那麼問題來了,活動結束時要回退到以前的標準版,難道要從新編寫一遍嗎?固然不是,這是Git的版本控制就排上了用途,活動版的百度、標準版的百度就是這個網站的不一樣版本,版本控制系統能夠保存這些版本並隨意切換,這樣在活動結束時就省去了從新編寫的工做,直接切換到以前的版本就能夠了。github
Git優點:版本控制、多人開發(後面介紹)bash
提到版本控制就不得不讓你們瞭解版本控制不一樣方式:服務器
1、本地版本存儲系統:將不一樣的版本代碼存儲到本地計算機,缺點:容易丟失、全部版本存儲一臺計算機佔用大量內存ssh
2、集中化版本控制系統:(相似於SVN)服務器存儲不一樣版本的代碼,須要的時候同服務器上拉取,缺點:服務器宕機全部版本丟失分佈式
3、分佈式版本控制系統:每一個人本地存儲不一樣版本的部分,服務器存儲全部版本集合(github)優勢:服務器癱瘓本地有備份,佔用小部份內存網站
讀到這裏咱們已經知道了git是一個版本控制系統,那麼github又是幹什麼的呢?其實咱們能夠把git理解爲某種標準或者協議,而github則是對這個協議的實現。像碼雲或者某些大型公司本身存儲倉庫都是對git的具體實現。ui
1、建立公鑰(SSH方式、https協議可不用執行此步)
一、下載git(官網)
二、建立公鑰 (桌面右鍵git bash here,執行下面命令,一路回車)
ssh-keygen -t rsa複製代碼
三、查看公鑰-命令行
cd ~/.ssh
ls
cat id_rsa.pub複製代碼
四、複製粘貼到github(本身事先建立一個github帳號):SSH keys
六、配置用戶名和郵箱(git以下執行命令)
git config --global user.email 本身的email
git config --global user.name 本身的用戶名複製代碼
七、克隆項目:github建立一個respositories複製ssh路徑,git執行以下命令
git clone 複製的ssh路徑複製代碼
2、本地倉庫介紹
本地倉庫分爲:工做區、暫存區、本地git倉庫
命令集合
一、將文件從工做區添加到暫存區
單個文件: git add <filename>
多個文件:git add .
複製代碼
二、將暫存區的文件提交到本地git倉庫
git commit -m "備註"複製代碼
三、查看文件的狀態:(包含工做區修改、是否添加到暫存區、是否提交成一個版本三種狀態)
git status複製代碼
四、撤銷工做區修改
git checkout -- <filename>複製代碼
五、暫存區文件撤銷(將文件撤出暫存區)
git reset HEAD <filename>複製代碼
六、查看詳細版本日誌信息
git log複製代碼
七、查看簡略版本信息
git reflog複製代碼
3、版本切換
一、回退版本
回退一個版本(一個^表明一個版本):git reset --hard HEAD^
回退100個版本:git reset --hard HEAD~100複製代碼
二、指定摸個版本id切換
git reflog(查看id)
git reset --hard id複製代碼
4、版本合併
一、合併多個版本 (-i表明使用ui界面、HEAD~3合併前三個版本)
git rebase -i HEAD~3複製代碼
接下來就會進入linux環境界面,將後兩個文件的pack字段改成s保存退出便可,對linux基本操做不熟悉的能夠看本人另外一篇博客,那裏有詳細的介紹 blog.csdn.net/weixin_4382…
5、推送到Github
一、推送到遠程分支
git push origin master複製代碼
6、差別比較
一、工做區與暫存區比較
git diff複製代碼
二、工做區域與本地Git倉庫
git diff HEAD複製代碼
三、暫存區域與本地Git倉庫
git diff --catched複製代碼
四、兩次版本的比較
git diff id1 id2複製代碼
7、分支(多人協做)
一、查看當前分支
git branch複製代碼
二、建立分支
git branch <branchname>複製代碼
三、切換分支
git checkout <branchname>複製代碼
四、建立並切換分支
git checkout -b <branchname>複製代碼
五、刪除分支
git branch -d <branchname>複製代碼
六、分支合併
git merge <branchname> 複製代碼
8、與GitHub創建鏈接
一、github創建倉庫
二、關聯到github倉庫
git remote add origin ssh地址複製代碼
三、拉取(解決衝突以後再提交)
git pull origin ssh地址複製代碼
最後再對照這個流程圖加深一下理解,今天就介紹到這裏啦