开源中国(oschina)的Git托管
一些废话
对于使用CVS/SVN出身的人来说,Git始终有点难上手(比如我),因为概念较多,一时理不清,尽管网上已经有很多教程,其实后来我发现,要掌握它的办法就是使用它,着手开始用它做源码管理,有问题就解决问题,见招拆招,这样就成了。
本文并非将Git怎么用的,如果对Git缺乏基本的了解,那这里有一个不错的教程:Git教程
大家都知道,Git是分布式的,如果仅仅只有一个本地库的话,一来不利于协同工作,二来也不够保险,万一本地硬盘坏了呢?所以即便是一个人在做开发,也最好找一个远程的代码库来托管。可以选择自己架一个,但稍微有些麻烦,并且由于没有公网固定ip地址,只能在局域网里用用,一旦在家办公就不轻易能检出代码;另一个选择就是用现有的代码托管服务,最最著名的无疑是github.com,但github.com只能免费创建公共容器,也就是说所有人都能看到的容器,如果要创建私有容器只允许自己的人看到的话,要付点钱,虽然也不算贵,现在不是有种观点“能用钱解决的就不要花时间”么?但由于一些众所周知的原因,github.com在大陆访问是不是会出现些不稳定的情况。那国内有没有类似github.com这样的代码托管服务呢?答案是肯定的,开源中国提供的就很不错:git.oschina.net,而且,即便是创建私有容器,它也是免费的,太棒了,我目前用下来大致上OK,有时候会稍微有点卡,但都可以接受。
一点原理说明
Git的身份验证方式和SVN有些不同,SVN可以使用自带的SVN协议和简单的用户名/密码机制验证用户身份,而Git则可使用https或ssh的连接方式,加系统用户名/密码验证,或者通过在服务器端保存用户公钥的方式来验证用户身份。很明显,oschina的做法是在服务器端保存用户公钥这种方式,因为不可能给成千上万的用户都创建系统帐号。服务器端一旦有了用户的公钥,就可以验证用户身份了,(能用这个公钥解开的密文,一定是用对应的私钥加密的,谁有对应的私钥,当然是对应的用户了)所以我们要做的是将我们的公钥上传到服务器上去,这样服务器就认我们了,根本不再需要额外的用户名/密码。我们下面也将采用ssh的方式来使用远程Git服务。
ssh的首次连接
这里还稍微有点点小问题要说明一下的,https协议通常是使用一些权威机构颁发的证书,你去访问https的时候就能够通过证书来确认这些网站的身份是可信的,而ssh则通常使用自己生成的证书,你怎么确定你要链接的那个服务器的身份呢?如果那个服务器是个假冒服务器,那怎么办?所以第一次用ssh连接远程服务器的时候,会给出类似的提示:
这是Windows环境下使用的SSH Secure Shell客户端的提示,在*nix下大致如此:
提示会给出远程主机公钥的“指纹”来让你确定其真实身份(因为公钥很长,很难用肉眼比对,所以做了个指纹摘要供用户查看),如果确定,就点“Yes”,在*nix环境下,会将这个公钥信息保存到~/.ssh/known_hosts文件中,下次就无需再询问你了,下面第一次连接远端服务的时候若是出现类似的确认,就不要感到奇怪了。
注册与创建项目
好,前面只是提提原理,以便大家理解,下面言归正传,讲讲如何用oschina的git托管服务。
第一步当然是先注册,到“http://git.oschina.net/”去,然后……注册过程很简单,不用说,你提供的email就相当于是你的用户名了。
注册完登录。然后就可以创建自己的“项目”了,项目就相当于容器,比如我创建了一个容器叫git_test。
这个时候也先别急着把你的本地容器push上来,你还没上传你的公钥呢,对吧?
生成和配置公私钥
要上传公钥,得先做一对公私钥,否则上传什么?使用ssh-keygen来做这个事情。(Windows的话先弄个cygwin)
打开:“https://git.oschina.net/keys”,点“添加公钥”,标题随便输,我习惯性地写自己电脑的名字,比如“guogangj’s Mac”,公钥的内容可以这样获取到:“cat ~/.ssh/id_rsa.pub”。把内容完整填入文本框中即可,注意不要随意在中间添加换行回车空格啥的。
保存,输入密码确定,这样就把公钥存到服务器上去了。顺便说一下,如果你想知道这个公钥的指纹的话,可以这样:
这样服务器端的配置就算完成了,测试一下:
若出现了一些意外的话,可以参考一下这个:可能的解决方案
Git的配置
本文当然不会告诉你具体怎么去使用Git,但在正常push和pull之前,我们还是有些东西要配置一下的。下面是配置用户名和email,这是全局配置的,不只是对一个Git容器生效,配置会被保存在“~/.gitconfig”中。
$git config --global user.name "guogangj"
$git config --global user.email "guogangj@163.com"
另外还可以配置一下要忽略的文件的列表,有些文件不必加入到Git中嘛,比如生成的.o文件,一些用户相关的配置啥的,以XCode为例,可以生成这么一个文件“~/.gitignore”,内容如下:
#Exclude the build directory
build/* #Exclude temp nibs and swap files
*~.nib
*.swp #Exclude OS X folder attributes
.DS_Store #Exclude user-specific XCode files
*.xcworkspace
xcuserdata
再设置一下:
git config --global core.excludesfile=~/.gitignore
配置完成。使用起来还是非常简单的,clone的方法:
$git clone git@git.oschina.net:guogangj/git_test.git
“git@git.oschina.net:guogangj/git_test.git”这个地址可以在项目主界面上得知:
完了之后可以看看remote的选项:
$git remote -v
这样就可以轻易的pull和push了。
开源中国(oschina)的Git托管的更多相关文章
- 在开源中国(oschina)上创建托管项目
***************************************************************** 目标: 1.能上传自己的项目到oschina上并且进行管理 2.能进 ...
- 用开源中国(oschina)Git管理代码(整合IntelliJ 13.1.5)
简介 开源中国提供了Git服务(地址:http://git.oschina.net/),在速度上比国外的github要快很多.使用了一段时间,感觉很不错.oschina git提供了演示平台,可以运行 ...
- Windows 下使用git 将代码托管到开源中国-(http://git.oschina.net/)
一.准备工作 当然是准备在windows 下使用需要的环境,和工具. msysgit 下载地址:http://msysgit.github.io/ TortoiseGit 下载地址:https:// ...
- 开源中国(oschina.net)能给我一个交代吗?
一年前准备把goolge上面diocp项目移动到开源中国上面,当时觉得开源中国的的速度还不错,都叫开源中国了,觉得应该稳定. 后来把今年开源mybean项目也放在上面了,还有一些小的项目都放在上面,就 ...
- PhpStorm 集成 开源中国(oschina.net)的Git项目,提交SVN时注意事项
第一步:配置 git.exe File -> Default Settings -> Version Control -> Git -> Path go Git executa ...
- PhpStorm 9.03 集成 开源中国(oschina.net)的Git项目,提交SVN时注意事项
第一步:配置 git.exe File -> Default Settings -> Version Control -> Git -> Path go Git executa ...
- 开源中国社区 https://git.oschina.net/ 添加 SSH 公钥 添加
首先可以参考官方的帮助文档 http://git.mydoc.io/?t=154712 然后进去码云首页 http://git.oschina.net 然后找到右边的头像点击一下 然后点击修改资料 ...
- 在开源中国(oschina)git中新建标签(tags)
我今天提交代码到主干上面,本来想打个标签(tags)的. 因为我以前新建过标签(tags),但是我现在新建的时候不知道入库在哪了.怎么找也找不到了. 从网上找资料也没有,找客服没有人理我,看到一个交流 ...
- 使用git推送代码到开源中国以及IDEA环境下使用git
使用git推送代码到开源中国以及IDEA环境下使用git 在学习Java的过程中我们会使用到git这个工具来将我们本周所编写的代码上传到开源中国进行代码托管,而在使用git的时候有很多的同学由于不会操 ...
- Ninesky源代码从Codeplex迁移到开源中国
原来Ninesky代码一直发在Codeplex.com上,最近两三个星期了代码一直迁入不上去,网站访问也经常出错. 所以把代码放到开源中国去了,项目地址https://git.oschina.net/ ...
随机推荐
- 强大的Spring缓存技术(上)
缓存是实际工作中非常常用的一种提高性能的方法, 我们会在许多场景下来使用缓存. 本文通过一个简单的例子进行展开,通过对比我们原来的自定义缓存和 spring 的基于注释的 cache 配置方法,展现了 ...
- photo shop替换颜色(自己指定的颜色)
点开"选择"-"色彩范围",在选择下拉菜单里选"取样颜色",吸取图片上的要改的颜色,"确定",左下角拾色器前景色用你希望 ...
- cod-hw
COD hw 4 Xinglu Wang 3140102282 2016-12-27 21:28:01 COD hw 45.35.3.15.3.35.3.45.3.55.3.65.45.4.15.4. ...
- (python) 标准模块sys和os的使用
一.sys模块 包含了系统的相关的功能.我们来学习sys.argv,它包含命令行参数. 例子:定义了一个add函数,用来实现两个整数的相加. #! coding=utf-8 # usersys.py ...
- mysql解压缩安装(一)
MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的.如果是msi格式的可以直接点击安装,按照它给出的安装提示进行安装(相信大家的英文可以看懂英文提示),一般MySQL将会安装在C:\P ...
- 解决SQL server 2014 修改表中的字段,无法保存的问题。
修改PROJECT表中的字段,保存时,弹出上面的窗体,无法保存. 解决方法为:[工具]->[选项]->[设计器]中,去掉“阻止保存要求重新创建表的更改”前的勾选.
- Javascript日期比较
var date1=Date.parse("2014-9-3 11:40:14".replace(/-/g,"/")); var date2=Date.pars ...
- Balance - 七夕悠然
想争取一个月至少一篇博客的,还是没搭上七月的末班车.两个小妹妹来上海看我了,工作上又有点儿忙,充分利用所有时间了,还是没有挪出时间来写东西,貌似写东西也要时机一样,需要在可以静静思考的时候,再加上有淡 ...
- OD使用教程11
首先把安装好的软件拖入PEID,看看它是用什么语言写的 然后用OD载入程序,查找关键字,步骤看上一个笔记 双击到达代码处,发现这在一个跳转里面.可能第一反应是修改跳转,经试验后发现这是没用的所以 ...
- Microsoft.Office.Interop.Word.Document.Open returns null on Windows Server 2008 R2
系统终于通过UAT,可以上线了.一遍测下来还行,可是为什么word转PDF就是不行呢?查了一下log,原来在wordApp.Documents.Open来打开生产的word文件的时候,返回一直是空.之 ...