序
- Git相對於SVN多了很多新概念,用起來不難但想完全掌握需要花些功夫的
- Git現在是各大互聯網公司的主流代碼管理工具,曾經面試時因爲沒有過多接觸Git而被面試官鄙視
- 故認真學習,撰寫筆記
常見術語
- Git:git本體 + 命令行,要用就得裝,Linux、mac、Windows均支持。裝好後Linux和mac直接在shell敲命令行,Windows上的git運行在MINGW(Minimalist GNU for Windows)環境。如下:
*
Git-gui:Git官方出品的圖形化工具,一般好用,主題挺多的。
- GitLab:開源的遠程託管庫 + web管理應用,就是能自己隨便搭建的遠程庫,公司內部代碼託管就用這個
- GitHub(世界上最大的同性交友網站):最出名的代碼託管庫,開源項目聖地,現在已經不只託管代碼了,很多大神用它寫博客,當網盤用。
另:前段時間,notepad++項目,其作者在項目issues發表了針對中國的不良言論,還有很多TW地區的人妄加評論,不過相關的討論已及時刪除了,這點讓人很氣憤,這幫孫子如果不收斂,Github可是有被牆的風險啊- GitHub Desktop:GitHub官方出品的圖形化客戶端(IOS版已經有了)
- 國內比較好的託管站點:馬雲,coding.net,開源中國,CSDN
Git的優勢
- Git是分佈式,裝有Git的每個機器都是一個版本庫,版本變更了在本地提交就算數。遠程服務器上只是中心庫。
- SVN則是傳統集中式,所有改動都要提交到遠程纔算數。
- Git大部分操作基本在本地即可完成,沒網的時候也能提交、回退、創建、切換分支。只有在自己團隊的代碼準備合併主分支時纔會用到遠程庫。(高鐵上寫代碼也OK!)
- 分支管理更方便,切換及合併起來比SVN方便多了,還有很多高級玩法,還在學習。
Git相比於SVN的區別
- SVN只記錄差異變化,如果本次提交某個文件沒動,SVN則不記錄,只關心誰變了,變得什麼。
- Git則記錄快照:即使某個文件沒變化,Git也會在每個版本保存這個文件的快照。
Git使用方式
- 通過命令行或GUI的方式,在實際開發時一般使用GUI(包括各IDE內嵌的Git插件),但是想完全掌握Git,還是需要好好敲敲命令行
- 對於mac來說,通過改造shell來更爽的支持Git:安裝iTerm2、oh my sh以及powerline,敲命令時tab鍵會有聯想補全