青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

life02

  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  197 隨筆 :: 3 文章 :: 37 評(píng)論 :: 0 Trackbacks
http://www.cnblogs.com/banjia/archive/2008/09/20/1294901.html



在Windows環(huán)境中使用版本管理工具Git

Git是一個(gè)分布式的版本控制系統(tǒng),最初由Linus Torvalds編寫,作者把他描述為一個(gè)傻瓜式的版本管理系統(tǒng),用作Linux內(nèi)核代碼的管理。在推出后,Git在其它項(xiàng)目中也取得了很大成功,尤其是在Ruby社區(qū)中。目前,包括RubiniusMerb在內(nèi)的很多知名項(xiàng)目都使用了GitGit同樣可以被諸如CapistranoVlad the Deployer這樣的部署工具所使用。使用GIT系統(tǒng),不需要像SVN那樣搭建一臺(tái)SVN服務(wù)器來存放代碼庫(kù)。

 

一、為什么選擇Git

對(duì)于流行的軟件版本開源管理軟件,元老級(jí)的CVS、后來新秀的SVN,今天我在CHIP.CN Dowload中看到了一篇文章:《2008年度最佳開源軟件大獎(jiǎng)》(http://download.chip.eu/cn/standardbeitrag_cn_3640079.html)。其中提到了GIT版本管理系統(tǒng)。

我很奇怪,為什么SVN沒有入圍并獲獎(jiǎng)呢?當(dāng)初,我在從CVS轉(zhuǎn)移到SVN時(shí)就曾經(jīng)就SVN的一系列優(yōu)勢(shì)進(jìn)行過一些粗淺的學(xué)習(xí)。SVN在版本庫(kù)的管理上較CVS有明顯的優(yōu)勢(shì)。那么與SVN相比,GIT的優(yōu)勢(shì)又在哪里呢?

經(jīng)過強(qiáng)大的Google,我從網(wǎng)上找到了這些內(nèi)容:

From Git入門教程》:http://hi.baidu.com/eehuang/blog/item/37af8d54242d6351564e00b5.html

1. 傻瓜都會(huì)的初始化,git init, git commit -a, 就完了。對(duì)于隨便寫兩行代碼就要放到代碼管理工具里的人來說,再合適不過。也可以拿git做備份系統(tǒng),或者同步兩臺(tái)機(jī)器的文檔,都很方便。

2. 絕大部分操作在本地完成,不用和集中的代碼管理服務(wù)器交互,終于可以隨時(shí)隨地大膽地check in代碼了。 只有最終完成的版本才需要向一個(gè)中心的集中的代碼管理服務(wù)器提交。

3. 每次提交都會(huì)對(duì)所有代碼創(chuàng)建一個(gè)唯一的commit id。不像CVS那樣都是對(duì)單個(gè)文件分別進(jìn)行版本的更改。所以你可以一次性將某次提交前的所有代碼check出來,而不用考慮到底提交過那些文件。(其實(shí)SVN也可以做到這點(diǎn))

4. branch管理容易多了,無(wú)論是建立新的branch,還是在branch之間切換都一條命令完成,不需要建立多余的目錄。

5. branch之間merge時(shí),不僅代碼會(huì)merge在一起,check in歷史也會(huì)保留,這點(diǎn)非常重要。

From gitHost.cn

1、更方便的 Merge

分布式管理必然導(dǎo)致大量的 Branch Merge 操作。因此分布式版本控制系統(tǒng)都特別注意這方面。在傳統(tǒng)的 CVS 里面制作 Branch Merge 簡(jiǎn)直就是噩夢(mèng),Subversion 作為一個(gè)用于替代 CVS 的系統(tǒng),專門改進(jìn)了 Branch 操作。然而似乎人們沒有注意到,Branch 是輕松了,可是 Merge 呢?如果不能很方便地 Merge 回來,做 Branch 仍然是噩夢(mèng)。事實(shí)上,我就經(jīng)歷過在開發(fā)團(tuán)隊(duì)里面由于隊(duì)友操作不對(duì)而在 Merge 的時(shí)候把我的許多代碼都覆蓋掉了。當(dāng)時(shí)正是使用的 subversion 。雖然源代碼仍然在歷史里面,但是要去一個(gè)一個(gè)地找出被覆蓋掉的文件并恢復(fù)過來確實(shí)是一件很難忘的事情。

2、更方便的管理

傳統(tǒng)的版本控制系統(tǒng)使用中央倉(cāng)庫(kù),一些倉(cāng)庫(kù)相關(guān)的管理就只能在倉(cāng)庫(kù)上進(jìn)行。賦予開發(fā)團(tuán)隊(duì)每一個(gè)人中央倉(cāng)庫(kù)的管理權(quán)限是非常不好的。但是有時(shí)候確實(shí)會(huì)比較不方便的地方。

3、更健壯的系統(tǒng)

分布式系統(tǒng)一般情況下總是比單服務(wù)端的系統(tǒng)要健壯,因?yàn)榈?wù)端一旦服務(wù)器掛掉了整個(gè)系統(tǒng)就不能運(yùn)行了。然而分布式系統(tǒng)通常不會(huì)因?yàn)橐粌蓚€(gè)節(jié)點(diǎn)而受到影響。

4、對(duì)網(wǎng)絡(luò)的依賴性更低

雖然現(xiàn)在網(wǎng)絡(luò)非常普及,但是并不是隨時(shí)隨地都有高速網(wǎng)絡(luò),甚至有時(shí)候根本沒有網(wǎng)絡(luò)可以訪問。低速的網(wǎng)絡(luò)會(huì)讓人心情煩躁,有時(shí)候就呆呆地盯著屏幕上的 commit 進(jìn)度,什么事情也干不了。而沒有網(wǎng)絡(luò)連接更是致命的:你無(wú)法 commit !這表示你進(jìn)行任何改動(dòng)以前都必須小心翼翼,否則你可能再也找不會(huì)你曾經(jīng)寫的一些代碼了。

5、更少的“倉(cāng)庫(kù)污染”

有時(shí)候你要做一個(gè)模塊,它不是太大,所以沒有必要為它新建一個(gè) branch , 但是它又不是那么小,不可能一次提交就做好。于是便會(huì)提交一些不完整的代碼到倉(cāng)庫(kù),有時(shí)候會(huì)導(dǎo)致整個(gè)程序無(wú)法運(yùn)行,嚴(yán)重影響團(tuán)隊(duì)里其他人的開發(fā)。大多數(shù)人 在這種情況下的解決辦法都是寫完之后再提交。但是作為習(xí)慣了版本控制的人來說,進(jìn)行不計(jì)后果的大幅修改是經(jīng)常的事情,到后來突然發(fā)現(xiàn)自己先前的代碼沒有提 交,就后悔莫及了。如果是分布式系統(tǒng)的話就不會(huì)存在這樣的問題,因?yàn)楸镜貍}(cāng)庫(kù)的修改不會(huì)影響到別人的倉(cāng)庫(kù)。當(dāng)你完成并測(cè)試以后,就可以在郵件列表里面說: 我已經(jīng)把這個(gè)模塊做好了。然后感興趣的人就可以從你這里 pull 你的成果了。

雖然網(wǎng)上各種對(duì)Git的譽(yù)美之詞決不止于此,但是在Git的主站上,還是盡可能客觀的對(duì)GitSubversion進(jìn)行了一番比較。(GitSvnComparsion http://git.or.cz/gitwiki/GitSvnComparsion)。另外,Subversion目前通過SVK也已經(jīng)提供了一定程度上的源代碼庫(kù)分布式的管理能力。能夠?qū)崿F(xiàn)源代碼的離線提交等功能。

 

二、Windows上的使用Git

不得不說,Git是為Linux而生的。(廢話,Git的最初創(chuàng)建人就是Linux的創(chuàng)始人啊)。在Linux環(huán)境下,要使用Git,與任何Linux中的命令行工具沒有什么區(qū)別。甚至在擊鍵數(shù)上還有明顯的優(yōu)勢(shì)。在Windows上要使用Git在目前看來只有兩種方法:使用Cygwin(一個(gè)在Windows上運(yùn)行的Linux環(huán)境)或者使用msysgithttp://code.google.com/p/msysgit/)。Cygwinmsysgit的使用方法類似。Cygwin具有大量Linux的功能,如果只是想使用Git功能的話msysgit還是最簡(jiǎn)單和快速的方法。下面的介紹將以msysgit為主進(jìn)行。

為了能夠具備通過互聯(lián)網(wǎng)實(shí)現(xiàn)與別人協(xié)作開發(fā)的能力。對(duì)于項(xiàng)目,需要一個(gè)公開的源代碼托管服務(wù)。好在,現(xiàn)在已經(jīng)有不少可以供我們選擇的。尤其是githost,更是一個(gè)中文的源代碼托管服務(wù)提供方。從目前看來,在Githost上落戶的項(xiàng)目還很少,貌似是一個(gè)新近誕生的服務(wù)提供方。如果項(xiàng)目對(duì)服務(wù)提供的穩(wěn)定性有比較高的要求的話,還是選擇較老的git源代碼托管服務(wù)比較好吧。

如果是在局域網(wǎng)內(nèi)工作的小組,要使用Git做源代碼管理,那就更簡(jiǎn)單了,大家安裝好自己的Git,并指定一個(gè)人負(fù)責(zé)對(duì)Git版本庫(kù)進(jìn)行管理就好了。

(一)      GitHub簡(jiǎn)介

GitHub是使用Ruby開發(fā)的,具有清爽的界面。GitHub提供免費(fèi)的源代碼庫(kù)托管,同時(shí)也提供付費(fèi)的托管服務(wù)。通過付費(fèi)私有庫(kù)托管服務(wù)在財(cái)務(wù)上支持免費(fèi)部分的持續(xù)運(yùn)營(yíng)。

GitHub提供了一套獨(dú)特的代碼庫(kù)管理界面功能,并提供項(xiàng)目Wiki的能力。

GitHub提供了一系列的指南,也可以到這里去看看:http://github.com/guides/home

(二)      Windows系統(tǒng)上安裝Git

msysgit的老家下載安裝程序。http://code.google.com/p/msysgit/

選擇下載“** Full installer if you want to use official Git 1.5.6.1 **”對(duì)應(yīng)的Git-1.5.6.1-preview20080701.exe。實(shí)際上,總可以選擇最新的Git版本,以取得更好的使用效果。

安裝的過程很簡(jiǎn)單,基本上可以使用默認(rèn)設(shè)置。只是在設(shè)置路徑的時(shí)候要注意一下,為了避免與Windows路徑導(dǎo)致的意外情況,還是使用“Use Git Bash Only”比較安全。

Msysgit有命令行和圖形UI兩種使用方式。根據(jù)你的喜好選擇吧。要說的是,圖形UI可能不能完成所有的工作,因此在某些情況下(例如創(chuàng)建SSH Key),命令行還是必不可少的。

MsysgitBash命令行對(duì)中文的支持不好。所有的中文字符都顯示成了“?”。因此,為了避免麻煩,最好避免使用中文的文件名、目錄名和用戶名等。不知道現(xiàn)階段Cygwin對(duì)中文的支持如何,隨后再試試看吧。

(三)      設(shè)定GitHub

要使用GitHub首先需要?jiǎng)?chuàng)建SSH KeySSH將用來加密本機(jī)與遠(yuǎn)端服務(wù)器之間的通信。同時(shí)也是識(shí)別你對(duì)代碼所做的變更的方法。SSH Key可以使用Git命令行來產(chǎn)生。如果你已經(jīng)有一個(gè)SSH Key了,那么在這里也可以直接使用。

要使用Git創(chuàng)建SSH Key 首先需要打開Git Bash 命令行。

輸入命令:

ssh-keygen -C "username@email.com" -t rsa

說明:username@email.com 需要更換成你自己的Email地址

程序?qū)⑻岢鲆恍﹩栴},接受文件默認(rèn)存放位置,當(dāng)要求輸入pass phrase時(shí),如果本機(jī)安全沒有問題,也可以不輸入。找到當(dāng)時(shí)制定的文件存儲(chǔ)位置中id_rsa.pub文件。這就是在GitHub上申請(qǐng)帳戶時(shí)需要使用的SSH公鑰文件。

github.comregister中選擇Free account,在后續(xù)的界面中按照要求填入相應(yīng)的內(nèi)容即可完成注冊(cè)。很簡(jiǎn)單的。

關(guān)于Git后續(xù)如何使用,還是在另外的文檔中說明吧。

 

三、關(guān)于Git的一些聯(lián)結(jié)

1、 建立Git遠(yuǎn)程服務(wù)器:

目前貌似還沒有在Windows上建立Git服務(wù)器的。Linux在開源上還是強(qiáng)大啊!

l          Hosting Git repositories, The Easy (and Secure) Way
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

l          Remote Git Repos on Ubuntu: The Right Way
http://blog.drewolson.org/2008/05/remote-git-repos-on-ubuntu-right-way.html

l         Installing Git on a server (Ubuntu or Debian)
http://www.urbanpuddle.com/articles/2008/07/11/installing-git-on-a-server-ubuntu-or-debian

2、 基于Git的源代碼托管

l          中文的Git源代碼托管,基于gitorious構(gòu)建:http://www.githost.cn/projects

l          Gitorious
Gitorious is another free hosting site with a custom web interface, supporting multiple repositories per project, local installations and with open source code

http://gitorious.org/

l          repo.or.cz
repo.or.cz is the oldest hosting site, accommodating many hundreds of projects, with open-sourced infrastructure and aimed at open source software. It provides full push features as well as simple mirroring mode and gitweb interface with various enhancements.
http://repo.or.cz/

l          GitHub
GitHub provides both free hosting for smaller projects and paid options for private hosting and large-sized projects. It uses a custom web interface including a wiki hosting and puts emphasis on social networking of project developers
http://github.com/

3、 關(guān)于Git的有用的聯(lián)結(jié):

l          Git的老家:http://git.or.cz/

l          Git User's Manual (for version 1.5.3 or newer)
http://www.kernel.org/pub/software/scm/git/docs/v1.6.0.2/user-manual.html

l          Git - SVN Crash Course
http://git.or.cz/course/svn.html

l          Everyday GIT With 20 Commands Or So
http://www.kernel.org/pub/software/scm/git/docs/everyday.html

 

四、參考文檔:

l         Getting Started with Git and GitHub on Windows
http://kylecordes.com/2008/04/30/git-windows-go/

l         中文教程: http://www.b***/documents/gittutorcn.htm

l         簡(jiǎn)介: http://linuxtoy.org/archives/git.html

l         英文教程:http://www.kernel.org/pub/software/scm/git/docs/tutorial.html

l         GitHubhttp://github.com


posted on 2012-01-08 21:47 life02 閱讀(496) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 源碼學(xué)習(xí)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            麻豆精品国产91久久久久久| 亚洲精品日本| 原创国产精品91| 国产日韩精品一区二区三区在线| 国产精品久久久久9999吃药| 国产精品欧美精品| 国产精品日韩一区| 国产欧美在线观看一区| 国产亚洲欧美一区在线观看| 国内成人精品视频| 亚洲国产精品久久久久| 99精品国产一区二区青青牛奶 | 亚洲图片欧洲图片日韩av| 亚洲性感美女99在线| 篠田优中文在线播放第一区| 久久久夜夜夜| 亚洲精品自在久久| 亚洲欧美日韩一区在线| 久久综合999| 欧美日一区二区在线观看| 国产日韩欧美电影在线观看| 亚洲国产精品福利| 先锋a资源在线看亚洲| 久热精品视频在线观看| 亚洲美女色禁图| 久久久久se| 欧美另类极品videosbest最新版本 | 亚洲欧洲综合另类在线| 欧美国产日韩视频| 国产精品99久久久久久久vr| 久久久久久自在自线| 欧美日韩国产精品一卡| 激情视频一区二区| 亚洲淫性视频| 亚洲第一精品夜夜躁人人爽| 亚洲男女毛片无遮挡| 免费亚洲婷婷| 国产综合第一页| 亚洲欧美日韩久久精品| 亚洲电影视频在线| 久久精品中文字幕一区| 国产精品一区二区视频 | 亚洲国产视频一区| 欧美一级一区| 亚洲一区二区高清视频| 欧美精品日本| 亚洲欧洲在线观看| 久久综合九色综合欧美就去吻| 99这里有精品| 欧美日韩亚洲激情| 中文精品一区二区三区| 91久久国产综合久久蜜月精品| 欧美中文在线观看国产| 国产精品一区久久| 亚洲欧美怡红院| 一区二区三区欧美在线观看| 欧美韩日一区| a91a精品视频在线观看| 欧美国产综合| 蘑菇福利视频一区播放| 亚洲激情成人| 亚洲欧洲精品一区二区三区| 欧美77777| 99精品国产一区二区青青牛奶| 亚洲欧洲日产国码二区| 欧美日韩一区二区免费视频| 亚洲一区二区三区在线看| 亚洲小说欧美另类婷婷| 国产欧美日本一区视频| 久久久久国产精品一区三寸| 欧美一区二区三区的| 精品成人在线视频| 亚洲福利视频网| 欧美精品一区在线观看| 中文无字幕一区二区三区| 亚洲深爱激情| 国内成人精品2018免费看| 男女激情视频一区| 欧美精品福利在线| 亚洲一区日韩在线| 欧美一区高清| 亚洲毛片在线| 亚洲男人天堂2024| 狠狠色丁香婷婷综合影院| 久久精品久久99精品久久| 欧美一区二区三区喷汁尤物| 国模精品一区二区三区色天香| 免费成人网www| 欧美日本韩国在线| 欧美一区午夜精品| 久久综合久色欧美综合狠狠| 亚洲精品影院| 亚洲欧美日韩区| 一区二区三区亚洲| 亚洲国产成人在线| 国产精品亚洲综合久久| 亚洲国产成人久久| 国产日韩精品电影| 亚洲黄色天堂| 国产一区清纯| 一区二区三区产品免费精品久久75 | 中文国产亚洲喷潮| 在线播放不卡| 亚洲一级在线| 亚洲精品久久久久| 欧美在线观看一区二区三区| 妖精成人www高清在线观看| 亚洲制服丝袜在线| 亚洲三级视频在线观看| 欧美亚洲一区二区三区| 一本色道久久99精品综合 | 国产精品电影网站| 欧美成年人网站| 国产欧美日韩伦理| 一本大道av伊人久久综合| 在线观看精品一区| 香蕉av福利精品导航| 亚洲桃色在线一区| 欧美韩国在线| 欧美成人免费播放| 国产一区二区三区网站| 中文在线资源观看网站视频免费不卡 | 欧美成人精精品一区二区频| 久久国产精品色婷婷| 欧美日韩国产成人在线91| 欧美成人国产一区二区| 国产一区二区三区精品久久久| 在线性视频日韩欧美| 一区二区三区色| 欧美金8天国| 亚洲高清自拍| 亚洲久久一区二区| 欧美激情网友自拍| 亚洲激情av| 一本色道久久综合亚洲精品不卡 | 久久久免费精品| 免费高清在线一区| 黄色成人小视频| 亚洲桃色在线一区| 亚洲精品午夜精品| 国产精品第三页| 亚洲素人在线| 99国内精品久久| 欧美精品一区二区三区视频| 在线不卡中文字幕| 亚洲大片av| 欧美刺激午夜性久久久久久久| 又紧又大又爽精品一区二区| 欧美一区二区视频在线观看2020| 亚洲午夜精品久久久久久浪潮| 国产精品毛片在线看| 狠狠色狠狠色综合日日tαg | 久久久久国色av免费看影院| 99re热精品| 欧美日韩精品在线视频| 亚洲精品在线三区| 免费日韩av电影| 久久精精品视频| 国产精品揄拍500视频| 校园激情久久| 午夜久久久久久| 国产一级一区二区| 欧美jizz19hd性欧美| 榴莲视频成人在线观看| 日韩视频免费观看高清完整版| 亚洲国产天堂久久综合| 欧美日韩激情小视频| 亚洲影视在线| 久久亚洲精品欧美| 亚洲性av在线| 久久全国免费视频| 亚洲欧美日韩综合| 久久久亚洲一区| 亚洲欧美日本日韩| 久久久久久一区二区三区| 亚洲视频一起| 久久一区免费| 麻豆freexxxx性91精品| 在线观看视频一区二区欧美日韩| 亚洲激情电影在线| 国产亚洲一区在线| 亚洲免费黄色| 日韩视频在线观看国产| 亚洲欧美精品在线观看| 国产精品视频yy9099| 久久精品夜色噜噜亚洲a∨ | 91久久精品一区二区三区| 国产伦精品一区二区三区照片91| 免费一级欧美片在线观看| 国产日韩欧美在线播放| 亚洲在线观看视频| 亚洲欧美成人网| 国产精品爱久久久久久久| 999亚洲国产精| 亚洲欧美日韩国产精品| 欧美日本国产| 亚洲自拍偷拍麻豆| 国产精品v亚洲精品v日韩精品 | 亚洲国产精品视频| 欧美性片在线观看|