Git倉庫概述
我們來繼續研究遠程倉庫,在前幾篇博客中已經給大家介紹了git本地倉庫的安裝、初始化以及操作本地文件的各種命令,git、svn的目的都不僅僅是本地,svn是需要搭建一個svn服務器來保存、管理代碼,git是不是也和svn一樣呢,來需要有一個服務器呢?
答案是需要的,也許你也像我一樣已經用了很多年的svn管理工具,有一個服務器也許是一個共識,在這一點他們兩者還是有很多共同之處的,記得有一句話的意思是說“創新並不是完全拋棄了舊思想,而是在傳統思想的基礎之上,增加了一點點新的想法”,感覺這句話說的很對,很多東西都是對以前的產品、事務的繼承和發展,並不是完全拋棄,
我們公司是搭建了一台git服務器作為版本庫,其他開發人員只需要將版本庫克隆到本地然后別人將自己寫的代碼push到服務器然后我們就可以從服務器上面pull下來最新代碼,在每個人本機上面是擁有者完整的代碼庫的,這樣保證了代碼丟失的可能性很小,每個人在本機提交的時候都不會產生沖突,產生沖突也是pull別人代碼時,可能和自己本地的沖突,在git里面也有着解決沖突的法寶。
git服務器的作用也有備份的作用,假設團隊人少而且代碼同時壞掉那么代碼豈不是沒有了;相反,假如服務器壞了,也可以拿本地上面的git作為新服務器,git是分布式的它的版本庫分布在每一個克隆本機上面。
現在我們開發建遠程倉庫,為了節省資源和本着開源的原則我們在github上建立一個賬號,github是保存眾多開源項目的免費git服務器,為全球開源項目服務,當然如果你想有自己的私人空間並且容量大那么你需要花錢購買了,不過個人保存個自己的開源項目空間還是夠用了。
創建github遠程倉庫
我已經建立好個人賬戶,打開new respository選項,如下圖
我建了一個倉庫叫tgb,創建好之后界面如下:
紅色框中為自己的倉庫地址,如果你本地安裝着git客戶端,就可以通過這個地址把代碼克隆下來。
建立關聯
本地與遠程建立關聯我們采用ssh秘鑰對方式,在本機生成公鑰和私鑰文件然后把公鑰公開放在遠程一端,私鑰在本機根據公鑰私鑰認證機制即可連着遠程倉庫,這種方式比較安全而且不用每次都輸入秘鑰,在搭建hadoop集群時每台服務器之間也是進行ssh 公鑰認證免密碼登錄來進行通信。
打開git bash 界面 :ssh-keygen -t -C "xxx@xxx.com" 即可,打開C盤用戶目錄下看有如下文件
將is_rsa.pub文件打開文件內容復制到github網站,有一個add sshkey界面如下圖
title可以隨便寫,把公鑰文件中內容復制到key文本框中,點擊“add key”即可完成,上面那個已有的key是我本機的公鑰。
接下來打開Git bash 切換到我們的本地倉庫目錄,在倉庫中輸入命令如下:
現在已經在本地和遠程倉庫關聯起來了,可以把本地文件push到遠程了,關聯以后再推送就不需要remote,只用push命令就可以了,如下
由於是第一次連着需要確認是否正在,輸入yes即可,再回過頭來看看遠程倉庫是否有了內容:
可以看到git服務器中已經有了本地推送過來的文件,
總結:
到這里本地和遠程倉庫已經建立好了,現在我們用的已經是分布式控制代碼了,不管你在哪里都可以進行管理和開發,無論你在家里還是在中國、美國不會因為地域的限制而影響開發,是不是感覺這點要比svn好很多。
假如你正在車上、在偏遠山區沒有網絡同樣也不會影響你提交代碼,這一點是svn做不到的,它們各有自己的特色,也沒有必要用着哪一個抨擊哪一個的不好。