![](http://7xk15u.com1.z0.glb.clouddn.com/gitgit-t-shirt.png)
前言
Git 確實是很好的版本管理系統(tǒng)骡技。有關(guān)其優(yōu)點這里暫時不說了,網(wǎng)上也有很多相關(guān)資料介紹。
把這些記錄下來方便以后查閱理解酌予。
- 一些好的Git學(xué)習(xí)資源
以下記錄一些簡單筆記,以便日后查閱奖慌,當(dāng)然要想系統(tǒng)的學(xué)習(xí)下Git原理可以參考上面列出的學(xué)習(xí)資源
![IMG](http://7xk15u.com1.z0.glb.clouddn.com/study664d3ba6-3cd0-49da-ac75-5f84ee155ab8.png)
關(guān)于安裝
請移步Git安裝
當(dāng)然最好能在Linux下抛虫。
創(chuàng)建版本庫
- 通過git init命令將你要所在的當(dāng)前目錄變成Git可以管理的倉庫;在當(dāng)前目錄下你能看到** .git**目錄
- 一般你要將新寫好的文件要加入該倉庫管理時简僧,用命令git add youfile
- 將上面加入倉庫的文件提交到倉庫建椰,用命令git commit -m "your annotation information";注意:-m 參數(shù)后面記得填寫你修改的注釋說明岛马,方便別的開發(fā)者能閱讀棉姐。
- git status命令可以隨時查看倉庫當(dāng)前的狀態(tài),如有哪些文件更改了蛛枚,哪些已經(jīng)提交谅海,哪些文件沒有跟蹤.
操作遠程倉庫
一般可以自己搭建一個自己運行的Git服務(wù)器。如果沒條件蹦浦,就用Github網(wǎng)站吧扭吁,一個提供倉庫托管服務(wù)的網(wǎng)站,這里你可以將Github理解為Git服務(wù)器盲镶,但是它不免費提供私有的倉庫侥袜。
所以,要是你的項目不公開的話溉贿,要么交點費用枫吧,要么自己搭建個Git服務(wù)器。
不多說
首先在上面注冊個賬號宇色,我的賬號
然后你“Create a new repo”創(chuàng)建一個新的倉庫(我的新倉庫 COS-IIAPP )九杂,按照默認情況設(shè)置就可以了颁湖。
-
關(guān)聯(lián)你的本地倉庫。注意:最好本地倉庫名字與你在Github上面新建立的倉庫名字一樣例隆。在本地倉庫所在目錄下運行命令:
$ git remote add origin git@github.com:yourcount/hello-world.git
其中origin即為遠程庫
-
將本地庫的所有內(nèi)容 推送遠程庫
$ git push -u origin master
當(dāng)然甥捺,如果你在本地創(chuàng)建了其他分支(不知道什么是分支?別急镀层,要不你先看我后面介紹的分支吧)镰禾,也可以推送,將master改為你要推送的分支名稱即可唱逢。
你也可以從遠程庫clone到本地庫吴侦,效果一樣。
好了坞古,到這步恭喜你备韧,你現(xiàn)在可以看看你的github上面的是不是和你本地的項目一樣呢!媽蛋绸贡!沒有盯蝴??听怕,好了忘記下面這一步了。
創(chuàng)建SSH Key
對了虑绵,在這之前需要創(chuàng)建SSH Key尿瞭,因為你的本地Git倉庫和GitHub倉庫之間的傳輸是通過SSH加密。
$ ssh-keygen -t rsa -C “youremali.com”
并行開發(fā)
Git強大地方就在于它的多人共同開發(fā)了翅睛。
現(xiàn)在假設(shè)你的另外成員一起在分支dev開發(fā)一個項目.
- 他使用**git clone git@github.com:guxiaole/COS-IIAPP.git **命令克隆到他本地倉庫
- 他要創(chuàng)建遠程origin的dev分支到本地,用這個命令git checkout -b dev origin/dev声搁;
- 他很厲害,很快就在dev分支上開發(fā)了一個偉大的Idea捕发, 推送到遠程庫 git push origin dev后他很幸福的去看蒼老師的電影了疏旨;
這個時候,你很痛苦的加班加點在dev上修改扎酷,終于搞定時候檐涝,試圖也推送到遠程庫,這個時候就會提示報錯法挨。谁榜。次奧,那小子比我快凡纳!
原因:推送失敗窃植,因為遠程分支比你的本地更新。
解決辦法:
- 先用git pull試圖合并; 注意:要是git pull提示“no tracking information”荐糜,則說明本地分支和遠程分支的鏈接關(guān)系沒有創(chuàng)建巷怜,用命令git branch --set-upstream dev origin/dev
- 如果合并有沖突葛超,則解決沖突,并在本地提交延塑;
- 沒有沖突或者解決掉沖突后绣张,再用git push origin dev推送
分支的操作
-
默認master初始分支,一般比較穩(wěn)定的項目版本在這個分支上页畦,一旦開發(fā)出成熟的其他功能分支胖替,測試穩(wěn)定后再和此分支合并
IMG -
現(xiàn)在你需要和其他成員開發(fā)一個新的功能,一般新建一個分支豫缨,并很愉快的在上面進行修改提交独令。當(dāng)然,這個時候還沒有和主分支進行合并
IMGIMG
-
這個時候好芭,突然有人報告你發(fā)布的穩(wěn)定版本master的一個bug需要修復(fù)燃箭,這個時候停下手頭上進行的dev分支;轉(zhuǎn)到master分支舍败。
IMG -
新建一個bugfix分支招狸,修改提交
IMG
- bug搞定,合并到主分支
![IMG](http://7xk15u.com1.z0.glb.clouddn.com/study8275837.png)
![IMG](http://7xk15u.com1.z0.glb.clouddn.com/study8210348.png)
-
回到dev 分支邻薯,繼續(xù)工作裙戏,發(fā)現(xiàn)dev 新功能完成,合并master分支
IMG -
對了厕诡,忘記bugfix分支此時可以刪掉了累榜。
IMG
IMG 另外
當(dāng)手頭工作沒有完成時,先把工作現(xiàn)場git stash一下灵嫌,然后去修復(fù)bug壹罚,修復(fù)后,再git stash pop寿羞,回到工作現(xiàn)場
小結(jié)
最常用的Git命令差不多就這么多了猖凛,隨著后面學(xué)習(xí)繼續(xù)更新吧。绪穆。當(dāng)然辨泳,要想要徹底 搞清楚git原理,還是系統(tǒng)看看相關(guān)書籍吧霞幅。
![IMG](http://7xk15u.com1.z0.glb.clouddn.com/study1eeac211-8695-4ede-a47c-546cd61e898e.png)
歡迎交流學(xué)習(xí)漠吻,原文鏈接