前言
Git 確實是很好的版本管理系統(tǒng)。有關(guān)其優(yōu)點這里暫時不說了,網(wǎng)上也有很多相關(guān)資料介紹。
把這些記錄下來方便以后查閱理解。
- 一些好的Git學(xué)習(xí)資源
以下記錄一些簡單筆記,以便日后查閱,當(dāng)然要想系統(tǒng)的學(xué)習(xí)下Git原理可以參考上面列出的學(xué)習(xí)資源

關(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)提交,哪些文件沒有跟蹤.
操作遠(yuǎn)程倉庫
一般可以自己搭建一個自己運(yùn)行的Git服務(wù)器。如果沒條件,就用Github網(wǎng)站吧,一個提供倉庫托管服務(wù)的網(wǎng)站,這里你可以將Github理解為Git服務(wù)器,但是它不免費(fèi)提供私有的倉庫。
所以,要是你的項目不公開的話,要么交點費(fèi)用,要么自己搭建個Git服務(wù)器。
不多說
首先在上面注冊個賬號,我的賬號
然后你“Create a new repo”創(chuàng)建一個新的倉庫(我的新倉庫 COS-IIAPP ),按照默認(rèn)情況設(shè)置就可以了。
-
關(guān)聯(lián)你的本地倉庫。注意:最好本地倉庫名字與你在Github上面新建立的倉庫名字一樣。在本地倉庫所在目錄下運(yùn)行命令:
$ git remote add origin git@github.com:yourcount/hello-world.git
其中origin即為遠(yuǎn)程庫
-
將本地庫的所有內(nèi)容 推送遠(yuǎn)程庫
$ git push -u origin master
當(dāng)然,如果你在本地創(chuàng)建了其他分支(不知道什么是分支?別急,要不你先看我后面介紹的分支吧),也可以推送,將master改為你要推送的分支名稱即可。
你也可以從遠(yuǎn)程庫clone到本地庫,效果一樣。
好了,到這步恭喜你,你現(xiàn)在可以看看你的github上面的是不是和你本地的項目一樣呢!媽蛋!沒有??,好了忘記下面這一步了。
創(chuàng)建SSH Key
對了,在這之前需要創(chuàng)建SSH Key,因為你的本地Git倉庫和GitHub倉庫之間的傳輸是通過SSH加密。
$ ssh-keygen -t rsa -C “youremali.com”
并行開發(fā)
Git強(qiáng)大地方就在于它的多人共同開發(fā)了。
現(xiàn)在假設(shè)你的另外成員一起在分支dev開發(fā)一個項目.
- 他使用**git clone git@github.com:guxiaole/COS-IIAPP.git **命令克隆到他本地倉庫
- 他要創(chuàng)建遠(yuǎn)程origin的dev分支到本地,用這個命令git checkout -b dev origin/dev;
- 他很厲害,很快就在dev分支上開發(fā)了一個偉大的Idea, 推送到遠(yuǎn)程庫 git push origin dev后他很幸福的去看蒼老師的電影了;
這個時候,你很痛苦的加班加點在dev上修改,終于搞定時候,試圖也推送到遠(yuǎn)程庫,這個時候就會提示報錯。。次奧,那小子比我快!
原因:推送失敗,因為遠(yuǎn)程分支比你的本地更新。
解決辦法:
- 先用git pull試圖合并; 注意:要是git pull提示“no tracking information”,則說明本地分支和遠(yuǎn)程分支的鏈接關(guān)系沒有創(chuàng)建,用命令git branch --set-upstream dev origin/dev
- 如果合并有沖突,則解決沖突,并在本地提交;
- 沒有沖突或者解決掉沖突后,再用git push origin dev推送
分支的操作
-
默認(rèn)master初始分支,一般比較穩(wěn)定的項目版本在這個分支上,一旦開發(fā)出成熟的其他功能分支,測試穩(wěn)定后再和此分支合并
IMG -
現(xiàn)在你需要和其他成員開發(fā)一個新的功能,一般新建一個分支,并很愉快的在上面進(jìn)行修改提交。當(dāng)然,這個時候還沒有和主分支進(jìn)行合并
IMG
IMG
-
這個時候,突然有人報告你發(fā)布的穩(wěn)定版本master的一個bug需要修復(fù),這個時候停下手頭上進(jìn)行的dev分支;轉(zhuǎn)到master分支。
IMG -
新建一個bugfix分支,修改提交
IMG
- bug搞定,合并到主分支


-
回到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)書籍吧。

歡迎交流學(xué)習(xí),原文鏈接