开源中国(oschina)的Git托管

时间:2022-09-16 09:21:44

一些废话

对于使用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连接远程服务器的时候,会给出类似的提示:

开源中国(oschina)的Git托管

这是Windows环境下使用的SSH Secure Shell客户端的提示,在*nix下大致如此:

开源中国(oschina)的Git托管

提示会给出远程主机公钥的“指纹”来让你确定其真实身份(因为公钥很长,很难用肉眼比对,所以做了个指纹摘要供用户查看),如果确定,就点“Yes”,在*nix环境下,会将这个公钥信息保存到~/.ssh/known_hosts文件中,下次就无需再询问你了,下面第一次连接远端服务的时候若是出现类似的确认,就不要感到奇怪了。

注册与创建项目

好,前面只是提提原理,以便大家理解,下面言归正传,讲讲如何用oschina的git托管服务。

第一步当然是先注册,到“http://git.oschina.net/”去,然后……注册过程很简单,不用说,你提供的email就相当于是你的用户名了。

开源中国(oschina)的Git托管

注册完登录。然后就可以创建自己的“项目”了,项目就相当于容器,比如我创建了一个容器叫git_test。

开源中国(oschina)的Git托管

这个时候也先别急着把你的本地容器push上来,你还没上传你的公钥呢,对吧?

生成和配置公私钥

要上传公钥,得先做一对公私钥,否则上传什么?使用ssh-keygen来做这个事情。(Windows的话先弄个cygwin)

开源中国(oschina)的Git托管

打开:“https://git.oschina.net/keys”,点“添加公钥”,标题随便输,我习惯性地写自己电脑的名字,比如“guogangj’s Mac”,公钥的内容可以这样获取到:“cat ~/.ssh/id_rsa.pub”。把内容完整填入文本框中即可,注意不要随意在中间添加换行回车空格啥的。

开源中国(oschina)的Git托管

保存,输入密码确定,这样就把公钥存到服务器上去了。顺便说一下,如果你想知道这个公钥的指纹的话,可以这样:

开源中国(oschina)的Git托管

这样服务器端的配置就算完成了,测试一下:

开源中国(oschina)的Git托管

若出现了一些意外的话,可以参考一下这个:可能的解决方案

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”这个地址可以在项目主界面上得知:

开源中国(oschina)的Git托管

完了之后可以看看remote的选项:

$git remote -v

这样就可以轻易的pull和push了。

开源中国(oschina)的Git托管的更多相关文章

  1. 在开源中国(oschina)上创建托管项目

    ***************************************************************** 目标: 1.能上传自己的项目到oschina上并且进行管理 2.能进 ...

  2. 用开源中国(oschina)Git管理代码(整合IntelliJ 13.1.5)

    简介 开源中国提供了Git服务(地址:http://git.oschina.net/),在速度上比国外的github要快很多.使用了一段时间,感觉很不错.oschina git提供了演示平台,可以运行 ...

  3. Windows 下使用git 将代码托管到开源中国-(http://git.oschina.net/)

    一.准备工作 当然是准备在windows 下使用需要的环境,和工具. msysgit  下载地址:http://msysgit.github.io/ TortoiseGit 下载地址:https:// ...

  4. 开源中国(oschina.net)能给我一个交代吗?

    一年前准备把goolge上面diocp项目移动到开源中国上面,当时觉得开源中国的的速度还不错,都叫开源中国了,觉得应该稳定. 后来把今年开源mybean项目也放在上面了,还有一些小的项目都放在上面,就 ...

  5. PhpStorm 集成 开源中国(oschina.net)的Git项目,提交SVN时注意事项

    第一步:配置 git.exe File -> Default Settings -> Version Control -> Git -> Path go Git executa ...

  6. PhpStorm 9.03 集成 开源中国(oschina.net)的Git项目,提交SVN时注意事项

    第一步:配置 git.exe File -> Default Settings -> Version Control -> Git -> Path go Git executa ...

  7. 开源中国社区 https://git.oschina.net/ 添加 SSH 公钥 添加

    首先可以参考官方的帮助文档 http://git.mydoc.io/?t=154712 然后进去码云首页 http://git.oschina.net 然后找到右边的头像点击一下  然后点击修改资料 ...

  8. 在开源中国(oschina)git中新建标签(tags)

    我今天提交代码到主干上面,本来想打个标签(tags)的. 因为我以前新建过标签(tags),但是我现在新建的时候不知道入库在哪了.怎么找也找不到了. 从网上找资料也没有,找客服没有人理我,看到一个交流 ...

  9. 使用git推送代码到开源中国以及IDEA环境下使用git

    使用git推送代码到开源中国以及IDEA环境下使用git 在学习Java的过程中我们会使用到git这个工具来将我们本周所编写的代码上传到开源中国进行代码托管,而在使用git的时候有很多的同学由于不会操 ...

  10. Ninesky源代码从Codeplex迁移到开源中国

    原来Ninesky代码一直发在Codeplex.com上,最近两三个星期了代码一直迁入不上去,网站访问也经常出错. 所以把代码放到开源中国去了,项目地址https://git.oschina.net/ ...

随机推荐

  1. [转]Writing Custom Middleware in ASP.NET Core 1.0

    本文转自:https://www.exceptionnotfound.net/writing-custom-middleware-in-asp-net-core-1-0/ One of the new ...

  2. JNDI 和JDBC的区别

    1.JNDI 和JDBC的区别和联系.两者都是API,是一个标准.并不是什么产品或方法.JDBC 全称:Java Database Connectivity 以一种统一的方式来对各种各样的数据库进行存 ...

  3. 在pc游览器端模拟移动端幻灯片

    用简单的思路写了下pc端模拟web端的图片滑动效果... 效果卡,bug多,完毕,继续学习c3方法写这个,iscroll就是可以模拟这种效果,还在学习中,难点<触点判断> 代码一份 &lt ...

  4. 【转】Android自定义View的实现方法,带你一步步深入了解View&lpar;四&rpar;

    原文网址: 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到 ...

  5. python2&period;&plus;进化至python3&period;&plus; 语法变动差异(不定期更新)

    1.输出 python2.+ 输出: print "" python3.+ 输出: print ("") 2.打开文件 python2.+ 打开文件: file ...

  6. (转)教你如何使用php session

    学会php session可以在很多地方使用,比如做一个后台登录的功能,要让程序记住用户的session,其实很简单,看了下面的文章你就明白了.     PHP session用法其实很简单它可以把用 ...

  7. hdu 1159 Common Subsequence (dp乞讨LCS)

    Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  8. Tomcat如何检测内存泄漏

    一般情况下,如果我们重启web应用是通过重启tomcat的话,则不存在内存泄漏问题.但如果不重启tomcat而对web应用进行重加载则可能会导致内存泄漏,因为重加载后有可能会导致原来的某些内存无法让G ...

  9. uninitialized&lowbar;copy&lpar;&rpar;效果试验

    根据<STL源码剖析>这段节选描述,实现如下代码进行测试 #include "2jjalloca.h" #include <vector> #include ...

  10. Comparing Differently Trained Models

    Comparing Differently Trained Models At the end of the previous post, we mentioned that the solution ...