git是什麼? 好吃麼。
在《手把手從零打造企業級電商平台-前端實戰》課程裡用到了git,很多還沒參加過公司項目開發的同學就會很疑惑,git是什麼。git好吃麼。這貨是不是我們鬥圖的圖片。哦。不對。那是gif。那TM git到底是什麼?!
我們可以把git理解成我們管理代碼的工具,把代碼找個遠程伺服器備份一下,當我們電腦死翹翹的時候,就不用害怕代碼丟了。當然把git理解成代碼備份工具是委屈它了,git更厲害的功能是版本管理,他可以把每個版本都存起來,這樣就能方便找到各個曆史版本。再加上它對版本的一些設計,比如分支開發,分支合并和分支復原等操作,能方便的讓多人蔘與同一個項目的開發,更符合現在團隊作戰的開發方式。
git從表面看起來並不是一個很難用的東西,但要知道git的設計和原理還是有不少內容的,出本書的話怎麼也能講上幾百頁吧。但是我們如果單純的把git當工具來使用的話,並不是很難入門。我們這篇文章的目的也是讓大家儘快瞭解git,早點上手,而原理性的東西用熟了以後再看會更容易理解。我們下來找幾個最常遇到的情境來說一下git的用法。 情境1:我要開始一個新項目,想用git管理代碼
這裡以git.oschina.net為例(oschina可以免費建立私人項目,github建立私人得花錢)。
第一步,我們需要先註冊個git帳號,這裡就不說了。這個oschina提供的git服務其實就是給我們一個空間,我們的代碼可以傳上去由oschina保管。
第二步,建立項目,填上項目名稱,git地址等資訊以後,就可以建立一個項目了。
第三步,填加ssh的key,添加key的作用是允許你的電腦訪問git倉庫。如果git項目是私人的,那麼就要指定誰可以訪問誰不能訪問。我們把自己電腦上的ssh key添加到git項目上,就表示我們電腦裡的key能訪問了,可以理解成key的白名單。配置方法如下:
# 郵箱地址填註冊git時用的郵箱,然後按3個斷行符號。ssh-keygen -t rsa -C "xxx@happymmall.com"# 在git.oschina的項目裡添加公開金鑰,查看公開金鑰內容:cat ~/.ssh/id_rsa.pub
第四步,配置本地的git選項,可以在使用者目錄下,使用者目錄下,使用者目錄下。建立一個.gitconfig檔案,把下面的內容放裡面。其中的name是在提交代碼時使用的名稱,可以隨意指定,還有一個是email,這個email一定要和註冊git時使用同一個。
[user] name = Rosen email = xxx@happymmall.com[alias] co=checkout ci=commit st=status pl=pull ps=push dt=difftool l=log—stat cp=cherry-pick ca=commit -am b=branch[push] default = simple
這個設定檔中的alias是一些命令的快速鍵,比如切換分支是git checkout xxx,如果配置了alias,就可以直接輸入git co xxx,這兩個命令是等價的。
push一項配置成simple,表示是在push的時候只把當前分支推送到遠程對應的分支上。這個也可以不配置,因為git2.x版本以後,預設的就是simple模式。
第五步,從遠程拉下代碼,這git項目就算建好了。
# 使用項目的ssh形式的地址git clone xxx
情境2:我要開始開發了,要怎麼玩。
進入開發前,要先瞭解git的分支使用規範。當我們項目clone下來以後,預設會處在master分支上,也就是git的預設分支。通常我們是不在這個分支上做開發的,如果更規範一點,master分支會對開發人員設定成唯讀,最終由上線人員把要上線的代碼合并到master分支上。這時候我們就要做一個自己的開發分支。執行如下:
# 切換到master分支git checkout master# 拉取最新代碼git pull# 以master分支為基礎,建立本地分支,新分支名以mmall_v1.0為例git checkout -b mmall_v1.0 # 在遠程建立對應的分支,只有建立分支時需要執行這步,以後只需要git pushgit push --set-upstream origin mmall_v1.0
然後就可以在新分支上開始寫代碼。 情境3:我要在一個已有的分支上開發點東西
因為是已有分支,就不用自己建立了,直接切換到指定分支,這裡還是以mmall_v1.0為例。
# 切換分支git checkout mmall_v1.0# 拉取當前分支最新代碼git pull
然後還是一樣的,就可以進入開發了。 情境4:開發到一定程度,想看看改動了什麼內容
# 看檔案的改動git status# 看檔案內容的變動git diff
情境5:代碼開發完成了,想提交代碼
# 首先是追蹤變更的檔案git add .# 然後提交到本地git commit -am '我是提交的說明'# 提交到遠程git push
情境6:當前分支代碼都開發完了,準備提交上線
在上線的時候,一般是由管理員或發布人員把開發分支的代碼合并到master分支上,上線前我們要先把遠程master最新的代碼合并到我們的分支上再提交,才能保證我們的開發分支版本高於master分支。如果不這麼幹,有多個人開發的話,就有可能造成A發布了一個版本,等B發布的時候會把A發布的內容衝掉。
# 合并遠程分支git merge origin master# 注意:如果發現merge的結果裡有CONFLICT,就表示當前分支和遠程master分支有檔案衝突,我們要手動解決一下衝突再做一次提交才可以。# 沒衝突或解決完衝突後,提交到當前分支的遠程git push
merge完成後,就可以做提交了,通常使用pull request提交合并到master分支的請求,管理員合并後,我們的分支內容就可以上線了。
作者: Rosen_Gao
連結:http://www.imooc.com/article/19060
來源:慕課網
本文原創發佈於慕課網 ,轉載請註明出處,謝謝合作。