標籤:style blog code http color com
原文:http://our2848884.blog.163.com/blog/static/146854834201152325233854/
最近感覺自己電腦上的代碼太亂了,東一塊、西一塊……於是決定使用正規的原始程式碼控制軟體來管理自己以後寫的代碼。以前做小項目的時候用過 TortoiseSVN,感覺不錯,但是速度上有點慢,於是決定嘗試一下新東西——Git。通過網路發現Git很火,看看下面的文字你就會知道Git有多 火。
Git 是一個分布式的版本控制系統,最初由Linus Torvalds編寫,用作Linux核心代碼的管理。在推出後,Git在其它項目中也取得了很大成功,尤其是在Ruby社區中。目前,包括 Rubinius和Merb在內的很多知名項目都使用了Git。Git同樣可以被諸如Capistrano和Vlad the Deployer這樣的部署工具所使用。
目前大部分的版本控制都需要一個伺服器端,commit時提交到伺服器端。git雖然是分布式的管理工具,但它也可以使用集中管理的方式。舉例來 說,billy建立了一個新項目,tom覺得這個項目比較有意思,他想玩玩看,他可以把整個repo(reoisitories)都clone到本地,並 且在他clone下來的項目中自己有一個repo。tom可以自由的對這個repo做各種提交修改,直到他滿意為止。這時tom可以告訴billy,他改 了一些什麼,若billy覺得不錯,可以從tom那邊fetch並merge到本地。
如前所述,作為一個分布式的版本控制系統,在Git中並不存在主庫這樣的概念,每一份複製出的庫都可以獨立使用,任何兩個庫之間的不一致之處都可以進行合 並。正因為如此,所以有了Github這個網站,github是基於ruby的並揉合多種語言進行開發的,上面的ruby項目也非常活躍。在github 中,每個人都可以有多個repo,這些repo都是與使用者綁定在一起的。user之間可以互相clone repo、fork repo、watch repo或是 follow其他user,就好像twitter或是plurk等社交網站一樣。
不過若使用免費的github則所有的repo都要是public且有300M容量的限制。若希望有private的repo,則需要跟付費才可。github另外還有剪貼簿的功能,可將代碼貼到其中並自由的發展各種branch。
GitHub 可以託管各種git庫,並提供一個web介面,但與其它像 SourceForge或Google Code 這樣的服務不同,GitHub的獨特賣點在於從另外一個項目進行分支的簡易性。為一個項目貢獻代碼非常簡單:首先點擊項目網站的“fork”的按 鈕,然後將代碼檢出並將修改加入到剛才分出的程式碼程式庫中,最後通過內建的“pull request”機制向項目負責人申請代碼合并。已經有人將GitHub稱為代碼玩家的Facebook。
看了上面的簡介,感覺不錯吧。那我們現在開始行動吧。
1 下載並安裝相關軟體
這裡主要涉及的軟體包括msysgit和TortoiseGit。
msysgit的:http://msysgit.googlecode.com/files/Git-1.7.4-preview20110204.exe
TortoiseGit的:de.google.com/p/tortoisegit/downloads/list" href="http://co%3Cwbr%3Ede.google.com/p/tortoisegit/downloads/list" rel="nofollow">http://code.google.com/p/tortoisegit/downloads/list(選擇你心儀的版本下載)
在安裝 TortoiseGit 之前,你的 Windows PC 上必須先安裝 msysgit。因為此程式提供了 Git 核心。而且安裝順序是:先安裝 msysgit,然後安裝 TortoiseGit。 如果你弄反了,也沒有關係,可以進入 TortoiseGit 的設定介面(右鍵菜單上 TortoiseGit -> Settings -> General -> MSysGit -> Path),手動指定 Git 核心檔案的位置(例如 c:\Program Files\Git\bin)。發現沒有,當你進入設定介面的時候,已經配置好了,不得不說現在的軟體做得可真周到。
2 在github.com上建立自己的帳號
前文說了,github就是程式員的facebook,所以我們應該有自己的帳號。帳號分兩種,免費帳號和付費帳號。使用免費的github,所有的 repo都要是public且有300M容量的限制;若希望有private的repo,則需要付費才可。本著自由交流的態度,還是申請一個免費的帳號 吧。這個流程很容易,我就不多說了。
註冊後,github會為大家提供幾個教程,協助大家快速學習掌握github的使用方法。地址如下:
Set Up Git教程:http://help.github.com/win-set-up-git/
Create a Repo教程:http://help.github.com/create-a-repo/
需要指出的是這些教程使用的是msysgit提供的git bash,如果大家對命令列很感冒,那麼那些教程基本上就夠大家參考了,無需再瀏覽本文;否則懇請各位繼續欣賞下文。
3 環境配置
本著學習的態度,我按照上述教程走了一下,發現問題:github ssh: connect to host github.com port 22
本人愚鈍,沒有解決該問題……於是還是回到開始的想法,使用TortoiseGit管理自己的Github項目。
3.1 在TortoiseGit配置MSysGit
在開始菜單中找到TortoiseGit的Settings一項,1所示。
圖 1 TortoiseGit中Settings的位置
由於我是64位的電腦,所以會顯示Settings (64 bit)。左鍵點擊後,進入TortoiseGit的設定介面。可以清楚的看到,MSysGit已經配置好了。如果Git.exe的位置為空白,請大家自己手動設定好。
圖 2 TortoiseGit的設定介面
3.2 建立測試專案HelloGit
在想放置項目的位置建立一個檔案夾,名稱為HelloGit,按右鍵該檔案夾,選擇"Git Create repository here…",也就是建立本地的程式碼程式庫。此時會彈出對話方塊,選擇"OK"。(PS:不用搭理哪個複選框)隨後會提示成功建立了一個空的代碼倉庫。
3.3 向HelloGit添加檔案並更新項目到本地版本庫中
建立一個README檔案,隨意填寫一些資訊。然後郵件單擊README,選擇"Git Add…",就是將README檔案添加到本地HelloGit項目中。
單擊"OK"後,顯示如下對話方塊。
單擊"commit",將更新提交到本地版本庫中。
別忘了在"Message"中填寫此次提交所完成的任務,便於以後查看提交資訊,對項目的進度有所掌握。單擊"OK",繼續。
3.4 建立溝通遠程版本庫與TortoiseGit的聯絡
這裡提到的溝通橋樑就是通訊中使用的密鑰。TortoiseGit 使用副檔名為ppk的密鑰,而不是ssh-keygen產生的rsa密鑰。也就是說使用ssh-keygen -C "[email protected]" -t rsa產生的密鑰在TortoiseGit中不能用。而基於github的開發必須要用到rsa密鑰,因此需要用到TortoiseGit的putty key generator工具來產生既適用於github的rsa密鑰也適用於TortoiseGit的ppk密鑰。
運行TortoiseGit開始菜單中的puttygen程式,點擊“Generate”按鈕,滑鼠在的空白地方來回移動直到進度條完畢,就會自動生一個隨機的key。
登入Github官網,點擊右上方的"Account Settings",選擇SSH Public Keys->Add another public key,將上面產生的Key粘貼進來,選擇"Add Key"。公開金鑰添加完畢。然後點擊上面對話方塊中的"Save private key",將私密金鑰儲存在本地,檔案尾碼是ppk。
運行TortoiseGit開始菜單中的Pageant程式,程式啟動後將自動停靠在工作列中,表徵圖顯示為,雙擊該表徵圖,彈出key管理列表。點擊"Add Key",選擇剛才儲存的ppk檔案,這樣私密金鑰就添加到key管理列表中了。
3.5 更新項目到遠程版本庫中
這是我們的最後一步啦!但是前提是我們得在TortoiseGit中配置好"Remote"。按右鍵HelloGit項目,選擇TortoiseGit->Settings,彈出如下對話方塊。
我們需要做的工作就是配置Git的Remote項。
Remote就是給該項目起個名稱,我們就是HelloGit;
Url就 是Github上對應的遠程版本庫的網路地址。各位有沒有認真看前面給的教程呀,建立一個Repo應該沒有問題吧。在本地key管理列表添加好自己的私密金鑰 了吧,在github上的相應項目中添加好自己的公開金鑰了吧,那我們可以繼續了,不然還得返回到3.4。在網站上進入你的項目中,會看到如下資訊:
前面我已經講了,在我的電腦上使用SSH,無法串連到github,所以此處我選擇的是HTTP的方式。[email protected]:username/reponame.git就是我們需要的Url。(PS:username和reponame應該是跟你的設定對應的,在使用中你可別真的原封不動地使用[email protected]:username/reponame.git,這可是連不上伺服器的)
Putty處需要填的資訊就是我們在本地儲存的私密金鑰檔案的路徑。
填好這三項後,點擊"Add New",就會在左邊的列表中顯示我們添加好的Remote資訊。好了,我們可以進行最後一項工作了。按右鍵項目HelloGit檔案夾,選擇 TortoiseGit->Push,彈出對話方塊,選擇剛才添加的Remote資訊,單擊"OK",成功推送!
好了,已經很晚了,祝各位晚安!如有問題,歡迎批評指正!