git:版本控制系統;linux
聽說是目前地球上最高端的版本控制系統;git
因此不知道緣由的狀況下我去了解了svn而錯過了git那麼久,同時也被使用git的朋友鄙視了那麼久;github
因而我知道我不能等我有時間的時候再去學習git了,是時候抽個時間來學習git了!shell
版本控制系統的好處就在於能夠自動記錄下每一個版本的改動記錄,爲我的開發以及團隊開發特別是團隊開發帶來了極大的便利!編程
不論是svn仍是git,在知道編程以後必定要去了解至少一個版本控制系統!windows
就是這麼個東西,如今開始學習。ruby
學習以前說了不少廢話,但有些也是必要的,不過如今要說的更是必要的:很是感謝在互聯網上傳播轉發學習資源的素昧生平的網友,很是感謝整理併發布學習資源的不曾見面的廖雪峯老師,謝謝大家的良苦用心,讓個人學習熱情沒有因環境侷限而空廢。微信
好了,到如今是17點46分,我是從十三點十分開始去看廖雪峯老師的git教程的,一會就要下班了我可能須要轉換戰鬥場地,下在這裏總結一下今天下午的成果:微信開發
首先安裝git:併發
windows上面直接下載資源安裝就能夠了;
安裝完成後,在開始菜單裏找到「Git」->「Git Bash」,蹦出一個相似命令行窗口的東西,就說明Git安裝成功!
而後在窗口輸入:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
安裝完成。
linux上個人已經安裝過了,由於我輸入git --version 而後又提示個人1.7.1版本,因此省了這一步;
不過就算沒有安裝,我想也沒什麼難的,直接下載源碼包,./configure、 make 、sudo make install就能夠了。
接着建立一個本地的git庫,新建一個文件,而後git init ,就能夠了。
這個庫裏面就多了一個隱藏屬性的文件.git。
而後你能夠在這個庫裏面作一些正常的文件操做;
只不過操做以後,執行命令:
git add .
git commit -m "info"
這樣就能夠提交了。
使用git status 能夠查看當前版本庫的操做狀態。
修改的內容可使用git diff 命令查看。
git log查看歷史記錄,
git reset --hard HEAD^回退操做;
能夠吧HEAD^替換成commit id;
還可使用git reflog查看包括回退在內的操做記錄;
經過以上命令實現版本的自由切換。
再就是工做區與暫存區的概念,git版本庫裏的文件在工做區操做,經過add到暫存區,最後的commit纔算是真真的保存起來。
能夠屢次add,一次性所有提交。
經過命令git check -- file撤銷對版本的修改,回到上次提交以後的最新版本。
有add天然有刪除,git rm filename就是刪除命令;
一樣只是將刪除提交到了暫存區,最後還須要commit;
若是刪除錯了,還能夠經過git checkout -- filename找回來。
直接玩遠程吧,首先須要去github註冊一個帳號。註冊郵箱激活,以後就能夠用了。
而後在shell裏面作這個 ssh-keygen -t rsa -C "youremail@example.com"
獲得ssh key;
把這個key添加到github裏面去。
在遠程上面建立一個項目以後,在本地shell經過命令:
git remote add origin git@github.com:michaelliao/learngit.git
鏈接上遠程項目,而後執行命令:
git push -m origin master
將本地的內容推送到遠程版本庫上;
一樣經過命令:
git clone git@github.com:michaelliao/gitskills.git
能夠把遠程版本庫裏的內容克隆或者說下載到本地。
今天還有解除到的就是git的分支管理:
建立分支切換分支的命令式:git branch 分支名;git checkout 分支名;
或者直接建立並切換過去:git checkout -b 分支名;
合併分支用git merge 分支名;
固然上面是快速合併,出現衝突時是不能快速合併的,須要命令:
git merge --no-ff -m "info" 分支名
能夠經過git diff 查看衝突的地方;
經過git log --graph查看合併分支的結構圖;
最後刪除分支的命令是:
git branch-d 分支名
順帶還有一個bug分支今天也看了一下;
這個命令git stash也挺有用的;
就是在你開發了一部分突然須要切換到另一個分支操做可是當前的版本又不適合commit時可使用此命令;
使用git stash以後就能夠切換到其餘分支了;
在其餘分支完成操做切換回來時可使用git stash list查看bug分支;
使用git stash pop恢復以前的操做,繼續在此分支工做。
好了,還加班了20多分鐘,今天下午就看了這麼多,我看也沒剩多少東西了,因爲夜晚確定要去幹微信開發的事情,因此剩下的一點東西明天在完成吧。
廖雪峯老師的教程:點我跳轉!