`

在Windows环境中使用版本管理工具Git

阅读更多
转自:http://www.cnblogs.com/banjia/archive/2008/09/20/1294901.html

Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,作者把他描述为一个“傻瓜式的版本管理系统”,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius和Merb在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。使用GIT系统,不需要像SVN那样搭建一台SVN服务器来存放代码库。


一、为什么选择Git

对于流行的软件版本开源管理软件,元老级的CVS、后来新秀的SVN,今天我在CHIP.CN Dowload中看到了一篇文章:《2008年度最佳开源软件大奖》(http://download.chip.eu/cn/standardbeitrag_cn_3640079.html)。其中提到了GIT版本管理系统。

我很奇怪,为什么SVN没有入围并获奖呢?当初,我在从CVS转移到SVN时就曾经就SVN的一系列优势进行过一些粗浅的学习。SVN在版本库的管理上较CVS有明显的优势。那么与SVN相比,GIT的优势又在哪里呢?

经过强大的Google,我从网上找到了这些内容:

From 《Git入门教程》:(http://hi.baidu.com/eehuang/blog/item/37af8d54242d6351564e00b5.html)

1. 傻瓜都会的初始化,git init, git commit -a, 就完了。对于随便写两行代码就要放到代码管理工具里的人来说,再合适不过。也可以拿git做备份系统,或者同步两台机器的文档,都很方便。

2. 绝大部分操作在本地完成,不用和集中的代码管理服务器交互,终于可以随时随地大胆地check in代码了。 只有最终完成的版本才需要向一个中心的集中的代码管理服务器提交。

3. 每次提交都会对所有代码创建一个唯一的commit id。不像CVS那样都是对单个文件分别进行版本的更改。所以你可以一次性将某次提交前的所有代码check出来,而不用考虑到底提交过那些文件。(其实SVN也可以做到这点)

4. branch管理容易多了,无论是建立新的branch,还是在branch之间切换都一条命令完成,不需要建立多余的目录。

5. branch之间merge时,不仅代码会merge在一起,check in历史也会保留,这点非常重要。

From gitHost.cn

1、更方便的 Merge

分布式管理必然导致大量的 Branch 和 Merge 操作。因此分布式版本控制系统都特别注意这方面。在传统的 CVS 里面制作 Branch 和 Merge 简直就是噩梦,Subversion 作为一个用于替代 CVS 的系统,专门改进了 Branch 操作。然而似乎人们没有注意到,Branch 是轻松了,可是 Merge 呢?如果不能很方便地 Merge 回来,做 Branch 仍然是噩梦。事实上,我就经历过在开发团队里面由于队友操作不对而在 Merge 的时候把我的许多代码都覆盖掉了。当时正是使用的 subversion 。虽然源代码仍然在历史里面,但是要去一个一个地找出被覆盖掉的文件并恢复过来确实是一件很难忘的事情。

2、更方便的管理

传统的版本控制系统使用中央仓库,一些仓库相关的管理就只能在仓库上进行。赋予开发团队每一个人中央仓库的管理权限是非常不好的。但是有时候确实会比较不方便的地方。

3、更健壮的系统

分布式系统一般情况下总是比单服务端的系统要健壮,因为但服务端一旦服务器挂掉了整个系统就不能运行了。然而分布式系统通常不会因为一两个节点而受到影响。

4、对网络的依赖性更低

虽然现在网络非常普及,但是并不是随时随地都有高速网络,甚至有时候根本没有网络可以访问。低速的网络会让人心情烦躁,有时候就呆呆地盯着屏幕上的 commit 进度,什么事情也干不了。而没有网络连接更是致命的:你无法 commit !这表示你进行任何改动以前都必须小心翼翼,否则你可能再也找不会你曾经写的一些代码了。

5、更少的“仓库污染”

有时候你要做一个模块,它不是太大,所以没有必要为它新建一个 branch ,但是它又不是那么小,不可能一次提交就做好。于是便会提交一些不完整的代码到仓库,有时候会导致整个程序无法运行,严重影响团队里其他人的开发。大多数人在这种情况下的解决办法都是写完之后再提交。但是作为习惯了版本控制的人来说,进行不计后果的大幅修改是经常的事情,到后来突然发现自己先前的代码没有提交,就后悔莫及了。如果是分布式系统的话就不会存在这样的问题,因为本地仓库的修改不会影响到别人的仓库。当你完成并测试以后,就可以在邮件列表里面说:我已经把这个模块做好了。然后感兴趣的人就可以从你这里 pull 你的成果了。

虽然网上各种对Git的誉美之词决不止于此,但是在Git的主站上,还是尽可能客观的对Git和Subversion进行了一番比较。(GitSvnComparsion :http://git.or.cz/gitwiki/GitSvnComparsion)。另外,Subversion目前通过SVK也已经提供了一定程度上的源代码库分布式的管理能力。能够实现源代码的离线提交等功能。



二、在Windows上的使用Git

不得不说,Git是为Linux而生的。(废话,Git的最初创建人就是Linux的创始人啊)。在Linux环境下,要使用Git,与任何Linux中的命令行工具没有什么区别。甚至在击键数上还有明显的优势。在Windows上要使用Git在目前看来只有两种方法:使用Cygwin(一个在Windows上运行的Linux环境)或者使用msysgit(http://code.google.com/p/msysgit/)。Cygwin和msysgit的使用方法类似。Cygwin具有大量Linux的功能,如果只是想使用Git功能的话msysgit还是最简单和快速的方法。下面的介绍将以msysgit为主进行。

为了能够具备通过互联网实现与别人协作开发的能力。对于项目,需要一个公开的源代码托管服务。好在,现在已经有不少可以供我们选择的。尤其是githost,更是一个中文的源代码托管服务提供方。从目前看来,在Githost上落户的项目还很少,貌似是一个新近诞生的服务提供方。如果项目对服务提供的稳定性有比较高的要求的话,还是选择较老的git源代码托管服务比较好吧。

如果是在局域网内工作的小组,要使用Git做源代码管理,那就更简单了,大家安装好自己的Git,并指定一个人负责对Git版本库进行管理就好了。

(一)GitHub简介

GitHub是使用Ruby开发的,具有清爽的界面。GitHub提供免费的源代码库托管,同时也提供付费的托管服务。通过付费私有库托管服务在财务上支持免费部分的持续运营。

GitHub提供了一套独特的代码库管理界面功能,并提供项目Wiki的能力。

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

(二)在Windows系统上安装Git

到msysgit的老家下载安装程序。http://code.google.com/p/msysgit/

选择下载“** Full installer if you want to use official Git 1.5.6.1 **”对应的Git-1.5.6.1-preview20080701.exe。实际上,总可以选择最新的Git版本,以取得更好的使用效果。

安装的过程很简单,基本上可以使用默认设置。只是在设置路径的时候要注意一下,为了避免与Windows路径导致的意外情况,还是使用“Use Git Bash Only”比较安全。

Msysgit有命令行和图形UI两种使用方式。根据你的喜好选择吧。要说的是,图形UI可能不能完成所有的工作,因此在某些情况下(例如创建SSH Key),命令行还是必不可少的。

Msysgit的Bash命令行对中文的支持不好。所有的中文字符都显示成了“?”。因此,为了避免麻烦,最好避免使用中文的文件名、目录名和用户名等。不知道现阶段Cygwin对中文的支持如何,随后再试试看吧。

(三)设定GitHub

要使用GitHub首先需要创建SSH Key。SSH将用来加密本机与远端服务器之间的通信。同时也是识别你对代码所做的变更的方法。SSH Key可以使用Git命令行来产生。如果你已经有一个SSH Key了,那么在这里也可以直接使用。

要使用Git创建SSH Key 首先需要打开Git Bash 命令行。

输入命令:

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

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

程序将提出一些问题,接受文件默认存放位置,当要求输入pass phrase时,如果本机安全没有问题,也可以不输入。找到当时制定的文件存储位置中id_rsa.pub文件。这就是在GitHub上申请帐户时需要使用的SSH公钥文件。

在github.com的register中选择Free account,在后续的界面中按照要求填入相应的内容即可完成注册。很简单的。

关于Git后续如何使用,还是在另外的文档中说明吧。



三、关于Git的一些联结

1、  建立Git远程服务器:

目前貌似还没有在Windows上建立Git服务器的。Linux在开源上还是强大啊!

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

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

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的源代码托管

中文的Git源代码托管,基于gitorious构建:http://www.githost.cn/projects

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/

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/

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、  关于Git的有用的联结:

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

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

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

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



四、参考文档:

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

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

简介:http://linuxtoy.org/archives/git.html

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

GitHub:http://github.com

分享到:
评论

相关推荐

    Git在windows的使用

    Git版本管理工具在Windows环境下的详细使用教程,有详细截图,适合初学者,也适合有一定基础的人群。

    Git for Windows

    windows环境下的GIT版本管理工具

    Git-2.9.2-64-bit(GIT for windows)

    原本Git的使用范围只适用于Linux / Unix平台,但在Windows平台下的使用也逐渐成熟,这主要归功于Cygwin、msysgit环境与TortoiseGit这样易用的GUI工具。其实Git的源代码中已经加入了对Cygwin与MinGW编译环境的支持,...

    Windows下搭建GIt环境

    window 下安装sygwin软件,在它基础上安装git ,vim openssh工具来对自己代码版本进行管理。

    windows-use-vim-ctags-and-git

    怎么在windows下使用git版本管理工具 ?在网上搜索会搜出个种各样的推荐,有人推荐直接下载一个windows下的vim安装包,或者有人推荐使用source insight,notpad++, sublime, ultraedit 或其他IDE工具等等,但是我...

    Git-1.7.6-preview20110708(windows版)

    原本 Git的使用范围只适用于 Linux / Unix 平台,但逐步并成熟了在 Windows 平台下的使用,主要归功于Cygwin与msysgit环境与TortoiseGit这样易用的 GUI 工具。其实 Git 的源代码中已经加入了对 Cygwin 与 MinGW 编译...

    【编程员效率工具】自己写的Git代码管理操作脚本,且自己团队正在使用中

    脚本运行环境:Linux,Windows(git bash中运行) 项目创建Develop分支来储存开发代码,master分支来储存当前代码,每个成员创建自己的个人分支。 在自己个人分支上开发,在自己分支-bugfix分支上修改bug。 快捷键...

    windows下git工具msysgit与TortoiseGit

    windows环境下的git工具包。Git当下最流行的版本控制工具,开源网站代码管理首选。

    JavaScript实现的Git项目JS-Git.zip

    而Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理,是一款非常棒的工具。 目标平台 该项目的目标是希望它能够在每一个平台上运行,包括: ChromeOS App Firefox OS ...

    Windows系统平台下使用Gitblit搭建Git服务器及使用

    Gitblit 是一个和 Gitlab 、github、gitee 功能差不多的 git 远程仓库系统,Gitblit 开源免费、兼容性强、支持windows 和 linux 环境、适合中小企业和个人使用。Gitlab 安装部署起来比较麻烦,而 Gitblit 就简单很多...

    Git权威指南PDF完整版

    3.3 在Windows 下安装和使用 Git(Cygwin篇)/ 31 3.3.1 安装 Cygwin/ 32 3.3.2 安装 Git/ 36 3.3.3 Cygwin 的配置和使用/ 37 3.3.4 Cygwin 下 Git 的中文支持/ 40 3.3.5 Cygwin 下 Git 访问 SSH 服务/ 41 3.4 ...

    Git安装与使用方法入门

    在安装过程中,你可以选择一些配置选项,但通常使用默认设置即可。 5、安装完成后,你可以通过Terminal或其他终端应用程序访问Git。 Git配置环境变量 把git的bin 目录,路径完整加入系统变量,在cmd中输入git; ...

    Git-2.10.2-64-bit.exe

    完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。 在开始菜单里找到"Git"->"Git Bash",会弹出 Git 命令窗口,你可以在该窗口进行 Git 操作。 ...

    包含Git-2.25.1 64位和32位windows安装程序

    Git的分支/合并:分支模型是Git最显著的特点,因为这改变了开发者的开发模式,SVN等版本控制工具将每个分支都要放在不同的目录中,Git可以在同一个目录中切换不同的分支。 保存点:Git的保存点可以追踪源码中的文件...

    Git-2.26.0-64-bit.zip

    git版本管理工具,适用于Windows环境下,终端操作方式

    Git-1[1].7.4-preview20110204.exe

    原本 Git的使用范围只适用于 Linux / Unix 平台,但逐步并成熟了在 Windows 平台下的使用,主要归功于Cygwin与msysgit环境与TortoiseGit这样易用的 GUI 工具。其实 Git 的源代码中已经加入了对 Cygwin 与 MinGW 编译...

    idea配置git教程.docx

    IntelliJ IDEA是一个强大的集成开发环境,它支持与Git等版本控制系统集成,方便开发人员进行版本管理和团队协作。下面是一个关于如何在IntelliJ IDEA中配置Git的简要教程: 步骤1:安装Git 首先,确保您已经在...

    Gitblit 是一个纯 Java 库用来管理、查看和处理 Git 资料库 相当于 Git 的 Java 管理工具 .rar

    安装GitBlit,是需要jdk环境的。 (1) 官网下载jdk jdk-8u181-windows-x64 (2) 安装jdk 安装的过程不再赘述 (3) 配置java环境变量 新建环境变量JAVA_HOME 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk...

    最新git项目开发中一键发起merge request工具,自动识别本地环境,支持windows、Linux、Mac,包含使用教程和资料.sh

    # 进入到Git管理的项目根目录,执行如下命令发起 merge request 请求,默认请求合并到 test 分支,-a 用来指定审核委派人, # 执行 merge 等同于 merge test,或执行 merge 其他远程分支名,具体用法如下: # merge ...

    JavaSpringboot仓库管理系统源码

    一个基于SpringBoot、Shiro和...开发环境包括操作系统:Windows 10、编程语言:Java、开发工具:IDEA、Navicat、Git、项目构建:Maven 3.5.2、服务器:Tomcat 8.5、数据库:MySQL 5.0以及代码托管平台:GitHub。

Global site tag (gtag.js) - Google Analytics