最近感觉自己电脑上的代码太乱了,东一块、西一块……于是决定使用正规的源代码管理软件来管理自己以后写的代码。以前做小项目的时候用过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的下载地址: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 "username@email.com" -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的方式。git@github.com:username/reponame.git就是我们需要的Url。(PS:username和reponame应该是跟你的设置对应的,在使用中你可别真的原封不动地使用git@github.com:username/reponame.git,这可是连不上服务器的)

Putty处需要填的信息就是我们在本地保存的私钥文件的路径。

填好这三项后,点击"Add New",就会在左边的列表中显示我们添加好的Remote信息。好了,我们可以进行最后一项工作了。右键单击项目HelloGit文件夹,选择TortoiseGit->Push,弹出对话框,选择刚才添加的Remote信息,单击"OK",成功推送!

原文地址:http://www.360doc.com/content/13/0622/16/203871_294766073.shtml

64位windows 7下成功配置TortoiseGit使用Github服务器的更多相关文章

  1. 64位WINDOWS系统环境下应用软件开发的兼容性问题(CPU 注册表 目录)

    应用软件开发的64 位WINDOWS 系统环境兼容性 1. 64 位CPU 硬件 目前的64位CPU分为两类:x64和IA64.x64的全称是x86-64,从名字上也可以看出来它和 x86是兼容的,原 ...

  2. 64位Windows系统下32位应用程序连接MySql

    1.首先得安装“Connector/ODBC”,就是Mysql的ODBC驱动,这个是与应用程序相关的,而不是与操作系统相关的,也就是说,不管你的系统是x64还是x86,只要你的应用程序是x86的那么, ...

  3. 64位windows 7下配置TortoiseGit(转)

    原文:http://our2848884.blog.163.com/blog/static/146854834201152325233854/ 最近感觉自己电脑上的代码太乱了,东一块.西一块……于是决 ...

  4. 招商银行支付dll在64位windows系统下的注册使用问题

    按照文档中的说明,注册完dll后,依然报找不到COM组件的错误.尝试过以下方法: 1.在VS中将项目编译目标改为x86,只能解决VS可以启动程序的问题,一部署到IIS中就出错. 2.估计是因为权限问题 ...

  5. CPU再烂,俺也支持虚拟化呀,再附送64位WINDOWS的IIS上配置支持PHP的注意事项

    原来要对IIS进行降权,让他可以支持32位程式     cscript.exe %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/App ...

  6. 64位Win8系统下安装Oracle12c

    经过3个小时的折腾,终于在64位win8系统下成功安装了Oracle 12c.这篇文章主要把安装过程中遇到的一些问题总结一下,以便帮助后来人参考. 首先我把我的机器的主要配制情况列举出来: 1. 系统 ...

  7. VS2013配置Caffe卷积神经网络工具(64位Windows 7)——准备依赖库

    VS2013配置Caffe卷积神经网络工具(64位Windows 7)--准备依赖库 2014年4月的时候自己在公司就将Caffe移植到Windows系统了,今年自己换了台电脑,想在家里也随便跑跑,本 ...

  8. 64位windows系统安装javaee6.0不成功解决方案

    64位windows系统安装javaee6.0不成功解决方案 (2013-01-19 14:59:51) 转载▼ 标签: 杂谈   could not find the required versio ...

  9. [转] 64位windows下添加postgreSQL odbc数据源

    系统环境:windows7 64位 postgreSQL9.0(64bit)   ps:安装postgreSQL时确定安装了odbc驱动.   问题:点击“开始->控制面板->管理工具-& ...

随机推荐

  1. leetcode 202

    202. Happy Number Write an algorithm to determine if a number is "happy". A happy number i ...

  2. JAVA代码热部署,在线不停服动态更新

    本地debug的时候,可以实时编译并更新代码,线上也可以不停服来动态更新类,即所说的java热部署.   JDK代理的两种方式: 1.premain方式是Java SE5开始就提供的代理方式,但其必须 ...

  3. Web后台技术趋势

    今天使用Google Trend比较了一下服务器端的程序开发语言技术ASP/ASP.NET Core, PHP, Node.Js的变化趋势,发现一下特点. ASP.NET最近几年一直再下降. ASP和 ...

  4. js语言精粹读书笔记一

    一.语法 1.

  5. java守护线程的理解

    package daemonThread; /*setDaemon(true)方法将线程设置为守护线程,线程的Daemon默认值为false * 只要当前JVM实例中存在任何一个非守护线程没有结束,守 ...

  6. mysql快速导入大量数据问题

    今天需要把将近存有一千万条记录的*.sql导入到mysql中.使用navicate导入,在导入100万条之后速度就明显变慢了, 导入五百万条数据的时候用了14个小时,且后面的数据导入的越来越慢. 后来 ...

  7. linux使用grep和find查找内容

    1,在某个路径下查文件. 在/etc下查找“*.log”的文件 find /etc -name “*.log” 2,扩展,列出某个路径下所有文件,包括子目录. find /etc -name “*” ...

  8. node代码片段

    /** * Created by Administrator on 2016/8/22 0022. * chat */ var net=require('net'); var chatServer=n ...

  9. 虚拟机配置光盘为yum源

    很多时候, 我们装系统用的光盘就足够充当我们的软件源了. 但是, 怎么才能配置好让光盘成为yum的软件源, 让yum命令找到这个地方, 从而进行软件的安装. 1. 在虚拟机中把光盘挂载上 挂载上之后, ...

  10. (转)IC验证概述

    验证是确保设计和预定的设计期望一致的过程,设计期望通常是通过设计规范来定义的.对于芯片设计,在不同的阶段可以分为:寄存器传输级(RTL)的功能验证.门级的仿真验证.形式验证以及时序验证.我们通常所说的 ...