git就是代碼庫,那麼若是你要問什麼是代碼庫?你能夠想一下數據庫~數據庫是放數據的,代碼庫天然是放代碼的。。
~具體爲何要學這玩意兒,由於上手以後確實很好用,我目前的測試代碼均用git在管理,並且目前國內不少公司也已經在使用git了,要是在互聯網界不會git,那麼你可能已經out了~mysql
首先,搭建git環境,我本身是用mac的~因此只能介紹一下mac的,mac麼,原本就預裝了git…基本不用搭,而後去git庫搞一個SSH,就能夠在終端敲命令行了,若是你仍是要裝一下git的環境,那麼我推薦用homwbrew裝吧,mac環境管理的神器,個人mysql,sqllite,gradle等等都用他裝,很是好用,有興趣能夠裝一個好好了解一下,用它裝git也是很是簡單的,直接brew install git,成功後就能夠直接使用了git
裝好了git,你須要一個git庫來練手,我推薦github,嗯,就是頗有名的github,去申請個帳號吧,而後跟着步驟去搞一個SSHgithub
通常來講,先要創建關聯,最簡單的辦法就是,經過終端進入你想要放代碼的根目錄,而後輸入:sql
git clone ssh連接
ssh連接的代碼庫就會立刻克隆到你終端所在的目錄,並且與遠程的git代碼庫創建關聯。數據庫
若是有人在遠程庫提交了代碼,那麼你可能須要同步到本地,怎麼作呢?輸入:ssh
git pull
這個命令會將遠程代碼的分支名同步到本地,並且會將當前所處分支的代碼同步到和遠程一致。ok,可能有人要問什麼是分支了,那麼如今將一下什麼是分支。測試
若是你是個新手,剛新建了一個嶄新的代碼庫,那麼你必定看到過master這個東西,ok,它就是你的master分支。能夠嘗試輸入:gradle
git branch
此時,應該會輸出一個master,那麼它就是你的master分支了。spa
咱們代碼庫一般都要面對多我的同時開發多個功能,那麼假設你們都在一個分支上工做,若是有一我的提交了不穩定的代碼到了這個分支上,那麼這份代碼發佈到測試環境後將會變的極不穩定,若是此時有一個線上的bug要立刻修復而且發佈,就沒法避免的要把這份有問題的代碼發佈上去,那就會讓事情變的更嚴重,總之,這種事是很是痛苦的。那麼如何解決呢?答案是:開分支。
每一個分支上的代碼是不一樣的,通常來講,每一個新功能都會開出一個獨立的分支去開發,好比我要作一個email功能,ok我就會去從最穩定的線上代碼A分支開出一個獨立的分支去作這件事,當這個功能相對穩定後,我會將代碼合併到分支B,有些依賴email分支的功能就能夠一塊兒作一些聯調之類的事情了,直到沒問題後才能合併到穩定分支A。那麼這裏的分支A通常來講就是master了,分支B通常來講就是dev分支了。下面說一下如何開分支命令行
開分支很簡單,好比我如今須要在master上開一個分支出來作一些開發,那麼首先切換到master分支上,輸入:
git checkout mater
而後若是看到有這樣的提示:
Switched to branch 'master' Your branch is behind 'origin/master' by 19 commits, and can be fast-forwarded. (use "git pull" to update your local branch)
那麼說明切換到master成功,可是遠程的master有19個提交,此時你須要輸入一下git pull來把遠程代碼拉取到本地,再次輸入:
git pull
若是你切換分支看到的是:
Switched to branch 'master' Your branch is up-to-date with 'origin/master'.
那麼說明你與遠程的master分支代碼一致,不須要拉取代碼。
ok,如今咱們來開分支。好比咱們如今要開一個叫dev的分支,那麼輸入:
git checkout -b dev
此時的輸出應該是:
Switched to a new branch 'dev'
此時你就切換到dev分支了,能夠輸入:
git branch
你應該能夠看到master和dev兩個分支,在dev的前面有個*號,表示當前所處的分支。你能夠經過命令來切換分支:
git checkout master
就能夠將分支切換到master,能夠經過git branch來查看。
此時咱們的dev分支只是一個本地分支,在遠程倉庫看,尚未dev分支,那麼要如何將dev分支推送到遠程呢?請先將分支切換到dev,而後輸入命令:
git push origin dev
而後去遠程倉庫查看,就能夠看到遠程也有一個dev分支了。在git中,origin每每表明遠程倉庫。
如今將分支停留在dev上,而後新建一個文件,或者隨意改動一些代碼。查看一下當前分支的狀態,命令爲:
git status
此時會輸出當前分支的狀態,你能夠看到剛纔改動的文件列表出現了。咱們如今須要講它提交到dev上
首先,加入這些文件到準備提交區域,命令爲:
git add --all
將所有文件加入到備提交狀態,而後輸入:
git commit -m "提交日誌信息,輸入本次提交的大體內容便可"
此時提交的內容就已經提交到了本地的dev分支中,而後咱們可能須要將它提交到遠程dev倉庫,輸入命令:
git push
此時就會將代碼提交到遠程的dev分支了。
這時候若是咱們將代碼切換到master,會發現根本看不到剛纔dev作出的修改,這就是分支的好處之一了。若是此時須要將dev分支的代碼合併到master,那麼請先將分支切換到master,而後輸入命令:
git merge dev
就能夠將dev的代碼合併到master,此時再看剛纔dev作的修改,就能夠看到咯。
好吧,剛纔的合併是有點隨意了,把不應合到master的東西也合進來了。悲劇啊,那怎麼辦?回退~
如何回退呢,須要先查看一下日誌:
git log
咱們能夠看一下提交日誌,你會發現每一個提交都有一個commit id,好比:
commit b3204f1dc2f7d57042cdd67c1dda2a0f9549c864
這個就是提交號了,找到咱們須要回退到的提交號,而後輸入:
git reset --hard b3204f1dc2f7d57042cdd67c1dda2a0f9549c864
就會將代碼回退到此次提交的狀態
經常使用的就先講這麼多了~剩下的下回分解