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

life02

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



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

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

 

一、為什么選擇Git

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

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

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

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

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

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

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

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

5. branch之間merge時,不僅代碼會merge在一起,check in歷史也會保留,這點非常重要。

From gitHost.cn

1、更方便的 Merge

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

2、更方便的管理

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

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

分布式系統(tǒng)一般情況下總是比單服務(wù)端的系統(tǒng)要健壯,因為但服務(wù)端一旦服務(wù)器掛掉了整個系統(tǒng)就不能運行了。然而分布式系統(tǒng)通常不會因為一兩個節(jié)點而受到影響。

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

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

5、更少的“倉庫污染”

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

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

 

二、Windows上的使用Git

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

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

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

(一)      GitHub簡介

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

GitHub提供了一套獨特的代碼庫管理界面功能,并提供項目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 **”對應(yīng)的Git-1.5.6.1-preview20080701.exe。實際上,總可以選擇最新的Git版本,以取得更好的使用效果。

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

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

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

(三)      設(shè)定GitHub

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

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

輸入命令:

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

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

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

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

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

 

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

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

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

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         簡介: 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 閱讀(490) 評論(0)  編輯 收藏 引用 所屬分類: 源碼學習
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品女人网站| 99综合视频| 亚洲精品中文字幕有码专区| 狠狠色香婷婷久久亚洲精品| 国产欧美日韩亚洲精品| 国产亚洲精品久久飘花| 国产一区二区成人| 1024欧美极品| 亚洲精品在线观看免费| 日韩亚洲欧美高清| 亚洲影院在线观看| 久久精品首页| 欧美高清免费| 91久久精品视频| 亚洲三级电影全部在线观看高清| 亚洲国产婷婷香蕉久久久久久| 日韩视频免费观看| 亚洲欧美日韩国产一区| 久久国产精品99国产精| 欧美国产三区| 国产精品视频免费观看| 狠狠干狠狠久久| 日韩视频在线一区二区三区| 亚洲欧美国产77777| 久久精品一区二区三区四区| 欧美高清视频| 亚洲午夜日本在线观看| 久久超碰97中文字幕| 欧美电影在线观看| 国产女人精品视频| 99视频一区二区三区| 欧美中文在线字幕| 亚洲毛片一区二区| 久久精品人人做人人爽| 欧美精品七区| 国产真实久久| 亚洲一区二区网站| 蜜乳av另类精品一区二区| 一区二区三区高清在线观看| 老司机精品导航| 国产欧美精品一区aⅴ影院| 亚洲国产另类久久精品| 久久精品2019中文字幕| 夜夜嗨av一区二区三区免费区| 久久精品久久综合| 国产乱码精品1区2区3区| 亚洲伦理久久| 牛牛精品成人免费视频| 亚洲一区二区三区四区中文 | 亚洲欧美日韩精品一区二区| 欧美成人免费一级人片100| 亚洲字幕一区二区| 欧美日韩精品| 亚洲精品一区二区三区99| 另类专区欧美制服同性| 午夜精品www| 国产精品视频专区| 午夜精品久久久久久久久久久久久 | 性色一区二区三区| 欧美视频免费在线观看| 日韩午夜av在线| 欧美激情精品久久久久久蜜臀 | 欧美久久一区| 亚洲美女中出| 亚洲欧洲美洲综合色网| 欧美精品久久99久久在免费线| 亚洲大胆人体视频| 欧美二区不卡| 欧美激情一区二区久久久| 日韩午夜激情av| 欧美日韩在线一区二区三区| 亚洲视频电影图片偷拍一区| 亚洲人成在线播放| 国产精品jvid在线观看蜜臀| 亚洲天堂av高清| 亚洲一区二区三| 国产亚洲电影| 老司机午夜精品| 久久在线免费观看视频| 亚洲片区在线| 一本色道久久综合亚洲91| 国产精品一级二级三级| 久久久久久亚洲精品不卡4k岛国| 久久久噜噜噜久久中文字免| 91久久国产综合久久| av成人黄色| 国产综合色产在线精品| 免播放器亚洲一区| 欧美激情片在线观看| 亚洲一区二区三区中文字幕在线| 亚洲一区中文| 国内外成人免费视频| 亚洲人成77777在线观看网| 欧美日韩专区| 美女久久一区| 欧美日韩一级视频| 欧美呦呦网站| 欧美成人精品在线播放| 欧美伊人久久久久久午夜久久久久 | 欧美一区国产一区| 在线国产欧美| 这里只有精品视频在线| 一区在线观看| 亚洲午夜羞羞片| 精品不卡一区| 中文av字幕一区| 亚洲日本一区二区| 欧美亚洲一区在线| 一本一本a久久| 狂野欧美激情性xxxx欧美| 欧美亚洲综合在线| 欧美www视频在线观看| 久久精品盗摄| 欧美剧在线免费观看网站| 久久久在线视频| 国产精品久久久久久久久久久久久 | 亚洲视频一区在线观看| 国外精品视频| 亚洲天堂成人| 亚洲一品av免费观看| 免费看av成人| 久久伊人精品天天| 国产噜噜噜噜噜久久久久久久久 | 欧美一区观看| 性欧美在线看片a免费观看| 欧美午夜一区二区福利视频| 欧美h视频在线| 精品电影一区| 欧美中日韩免费视频| 亚洲欧美日韩国产一区二区三区 | 欧美亚洲视频| 欧美在线日韩精品| 国产精品激情电影| 亚洲国产精品一区二区第四页av| 好吊一区二区三区| 午夜影视日本亚洲欧洲精品| 亚洲欧美日产图| 国产精品第一页第二页第三页| 亚洲精品影院在线观看| 亚洲啪啪91| 欧美日韩精品欧美日韩精品 | 久久久久国产精品一区二区| 欧美日韩一卡二卡| 一本色道久久综合亚洲精品高清| 亚洲视频欧美在线| 欧美午夜一区二区| 亚洲欧美大片| 久久久精品国产免费观看同学| 国产欧美不卡| 久久久久在线观看| 亚洲电影第1页| 亚洲黄网站黄| 欧美日韩你懂的| 国产精品99久久久久久久女警 | 欧美激情一区在线观看| 亚洲精品一区久久久久久| 欧美国产激情| 亚洲欧洲日韩在线| 亚洲一区在线直播| 国产日本欧美在线观看| 久久成人av少妇免费| 久色婷婷小香蕉久久| 亚洲人成在线播放| 欧美日韩一区二区免费视频| 亚洲资源av| 久久精品一级爱片| 亚洲丰满少妇videoshd| 欧美精品激情blacked18| 亚洲图片你懂的| 另类图片国产| 亚洲图片欧洲图片av| 国产精品资源| 美女免费视频一区| 亚洲网站视频| 久久综合亚州| 在线一区二区三区四区五区| 欧美刺激性大交免费视频 | 亚洲国内欧美| 国产美女一区| 欧美成人四级电影| 亚洲免费一级电影| 亚洲国产日本| 久久乐国产精品| 9色精品在线| 国产欧美日韩精品a在线观看| 免费日韩成人| 久久av一区二区三区漫画| 亚洲国产mv| 欧美在线观看你懂的| 日韩午夜av在线| 亚洲国产人成综合网站| 国产色产综合产在线视频| 欧美日韩在线视频观看| 久久天堂国产精品| 欧美亚洲日本网站| 亚洲一区二区av电影| 亚洲欧洲另类| 女仆av观看一区| 久久女同互慰一区二区三区| 亚洲免费视频观看|