引言:
在前面,介紹瞭如何使用Git,構建我們的本地倉庫,輕鬆的實現了版本控制以及代碼還原,修改日誌查看等;假如是多個人一起來開發一個程序呢?則需要一個作爲服務器的遠程倉庫!當然搭建一個服務器是需要成本的,爲什麼不把項目託管到Github上呢?作爲開源代碼庫以及版本控制系統,Github擁有140多萬開發者用戶。隨着越來越多的應用程序轉移到了雲上,Github已經成爲了管理軟件開發以及發現已有代碼的首選方法,不需要任何成本,爲何不使用呢?是吧!
1、賬號註冊&倉庫創建:
打開Github官網註冊:Github官網,填寫註冊相關信息:用戶呢稱,郵箱,密碼
註冊完,跳轉到如下頁面,選擇倉庫購買方式(私有倉庫,別人不可以訪問,要權限),一般我們自己玩選Free: PS:對了,這時候你郵箱可能收到一封驗證郵件,點下完成驗證。
接下來,創建一個我們的代碼倉庫:
爲自己的倉庫添加點內容提示,就是項目的一些概述(可寫可不寫)
簡單介紹下主頁的一些東西:
2、Clone代碼庫到本地
當然,你可以直接用圖形化界面克隆,不過我還是喜歡通過命令行來Clone,先複製下Clone的地址
然後在某個地方,有鍵打開git Bash:
鍵入:
git clone https://github.com/ZPJay/Garbage.git
然後可以看到我們的代碼庫就下載完成了:
打開文件夾,可以看到下述內容:
3、分支管理
對於剛接觸版本控制工具的朋友來說,分支可能比較陌生,但是它會給我們帶來很大的便利!有興趣的可以瞭解:曹雪峯的官方網站:創建和合並分支:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840038939c291467cc7c747b1810aab2fb8863508000!
首先,我們創建dev
分支,然後切換到dev
分支:
$ git checkout -b dev
Switched to a new branch 'dev'
git checkout
命令加上-b
參數表示創建並切換,相當於以下兩條命令:
$ git branch dev
$ git checkout dev
Switched to branch 'dev'
然後,用git branch
命令查看當前分支:
$ git branch
* dev
master
git branch
命令會列出所有分支,當前分支前面會標一個*
號。
然後,我們就可以在dev
分支上正常提交,比如對readme.txt做個修改,加上一行:
Creating a new branch is quick.
然後提交:
$ git add readme.txt
$ git commit -m "branch test"
[dev fec145a] branch test
1 file changed, 1 insertion(+)
現在,dev
分支的工作完成,我們就可以切換回master
分支:
$ git checkout master
Switched to branch 'master'
切換回master
分支後,再查看一個readme.txt文件,剛纔添加的內容不見了!因爲那個提交是在dev
分支上,而master
分支此刻的提交點並沒有變:
現在,我們把dev
分支的工作成果合併到master
分支上:
$ git merge dev
Updating d17efd8..fec145a
Fast-forward
readme.txt | 1 +
1 file changed, 1 insertion(+)
git merge
命令用於合併指定分支到當前分支。合併後,再查看readme.txt的內容,就可以看到,和dev
分支的最新提交是完全一樣的。
注意到上面的Fast-forward
信息,Git告訴我們,這次合併是“快進模式”,也就是直接把master
指向dev
的當前提交,所以合併速度非常快。
當然,也不是每次合併都能Fast-forward
,我們後面會講其他方式的合併。
合併完成後,就可以放心地刪除dev
分支了:
$ git branch -d dev
Deleted branch dev (was fec145a).
刪除後,查看branch
,就只剩下master
分支了:
$ git branch
* master
因爲創建、合併和刪除分支非常快,所以Git鼓勵你使用分支完成某個任務,合併後再刪掉分支,這和直接在master
分支上工作效果是一樣的,但過程更安全。
小結
Git鼓勵大量使用分支:
查看分支:git branch
創建分支:git branch <name>
切換分支:git checkout <name>
創建+切換分支:git checkout -b <name>
合併某分支到當前分支:git merge <name>
刪除分支:git branch -d <name>
4、本地倉庫與遠程倉庫同步問題
前面執行的這些分支操作都是在本地進行的,說了項目託管到GitHub上,肯定要跟遠程倉庫有交流是吧!可以用clone命令把項目下載到本地,那麼修改後如何把代碼同步到Github上呢?先對本地倉庫做一點點修改,接着git add和git commit本地準備後,然後:
1. git remote add origin [email protected]:帳號/倉庫名 與遠程倉庫相關聯
2. git pull --rebase origin master 該條指令執行後,會在本地倉庫生成一個與遠程倉庫一致的README.md
3. git push origin master 或者直接 git push 將本地master分支的內容推送到遠程倉庫
4.git pull 從遠程倉庫中同步內容到本地倉庫
5、題外話
使用情況可以如下: ①使用Github作爲項目管理工具:把項目託管到Github上的,然後有兩個分支:開發和測試兩個分支,每個版本一個分支,最後發佈時才把分支合併到master上!提bug也是在上面提的,還是比較便利的! ②使用Trello來做流程控制,也是比較簡潔高效的!另外,國內訪問Github可能比較緩慢,而且如果是私有倉庫是要收費的。不過可以考慮下使用國產的開源倉庫:Git@OSC,由開源中國提供的,提供了1000個私人倉庫,有興趣的可以考慮將代碼託管到這裏:http://git.oschina.net/!如果文中有錯誤紕漏,歡迎指出,謝謝~