EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

EaBIM

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 629|回复: 0
打印 上一主题 下一主题

[开发管理] 配置TortoiseGit使用Github服务器

[复制链接]

1514

主题

7465

帖子

1万

积分

admin

Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10

积分
12404

社区QQ达人

跳转到指定楼层
楼主
发表于 2014-1-10 10:08:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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。
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的使用方法。地址如下:
        需要指出的是这些教程使用的是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项目中。
单击"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",成功推送!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
工作时间:工作日的9:00-12:00/13:30-18:00,节假日不在线,请勿留言
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|EaBIM网 ( 苏ICP备2020058923号-1  苏公网安备32011502011255号

GMT+8, 2024-11-16 12:45

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表