帮助最后更新2013年08月2号

关于

Gitshell.com 是一个技术至上的社区,域名注册于2012/03/09,第一行代码写于2012/03/17 22:17:30,此后每天不断的添加代码。

程序员应该是一个伟大的称号,因为我们能作出对他人有用的产品,希望Gitshell是其中的一个。

对于程序员来说,数据库是心脏的话,代码就是大脑。我们希望可以为程序员们提供一个专业、安全、稳定的代码托管平台。

Gitshell,专心只做一件事。

我们专注于Git代码托管。在越来越多庞大体系的社会里,越来越多的巨无霸公司,他们什么都做,而且什么其实都做得不差,但是我们并不喜欢这样,我们愿意静静地待在角落,我们只专注于做一件事情,代码托管本身,我们希望在未来的中国社会里,越来越多专业的服务能够立足,我们不希望自己的一切都是来自BAT,我们愿意让你的生活多一点色彩,希望我们可以在互联网蛮荒中涂个鸦。

为了避免各种不可用的说明,先说明一下,Gitshell 只支持 Google Chrome, Mozilla Firefox, Apple Safari,Opera等现代浏览器

愿景

Gitshell 为优秀的开发者提供一个安全,稳定的社区,从这里展示获取代码,分享想法,相互学习,提高开发水平。

我们坚信专业的人做专业的事,未来是一个越来越细分的社会,也会是一个让多样化产品生存的社会,我们可以持续地完善Gitshell,让Gitshell和用户一起成长。

FAQ

Gitshell 是什么?
Gitshell 是一个使用git版本控制系统的项目,类似github(假如语言和网速对你都没有问题,推荐使用github),提供clone,push,pull,branch管理等。gitshell和git-shell命令很像,并且shell在linux有“外壳”的意思,而这个网站,就是提供git的一个“外壳”,这就是名字的由来。
为什么会有 Gitshell?
作为程序员,有一天我们忽然意识到,以前写的很多代码在各种变迁中不断丢失,虽然那些代码不一定有多少价值,但就像作家一样,留下每一份手稿是一件有意义的事情。在使用 github,bitbucket 过程中,觉得速度不够理想(特别是有一次github不能访问了,当然不是github本身的原因),就想建立一个自己用的git repository,所以深入了解git,在本机搭建环境,慢慢的就想,为什么不做一个公开的git托管,服务于开发者,于是有了Gitshell。
Gitshell 能做什么?
Gitshell 专注于git的托管,欢迎短小精悍的开源代码,特别鼓励原创性的。营造一个良好的开发者社区,信奉 KISS 原则,认为 code wins arguments,我们期待有更多有趣的东西。
Gitshell 的未来?
我们坚信专业的人做专业的事,未来是一个越来越细分的社会,也会是一个让多样化产品生存的社会,我们可以持续地完善Gitshell,让Gitshell和用户一起成长。
Gitshell 的架构?
Gitshell使用haproxy,openssh-Gitshell-patch,nginx,uwsgi,redis,memcached, beanstalkd, django,mysql,架构是不断变化的,而这里不一定保持更新。
Gitshell 限制?
由于提供git托管的技术要求和资源消耗比普通网站高,为了多数开发者能正常使用,对git操作有一些限制,目前Gitshell并不支持超大型的项目,这一块可能是最容易让人迷惑的,所有的Gitshell用户务必了解这一点。

除了介绍可以做什么,有必要说说不能做什么。

为了保持社区的良好氛围,Gitshell明确规则:

  • 可以google的问题不要问,注意提问的技巧,“赞,顶,邀请码,发我邮箱”…这些词汇不能出现。
  • 低碳环保,不要把Gitshell当成任何文件的备份,不要当成网盘。这里只允许代码相关的,不欢迎大量的二进制文件。如果有不合适的文件内容出现,那很有可能会被删除。
  • 与人和善,任何人身攻击,粗话,风花雪月,政治话题,贴图,无意义信息都不在讨论范围之内,这些话题都有对应的地方,但不是这里,这里只和开发者相关。
  • 违反了上述规则,有对应的惩罚措施,严重至帐号的禁用,我并不想有这种情况。

联系方式

邮件是古老而有效的联系方式,有任何问题都欢迎通过support@gitshell.com 沟通。 除此以外,官方微博 http://weibo.com/gitshell 也是一个很好的途径。 如果你需要与gitshell开发者沟通,联系 azhoulinux@gmail.com

注册·登录

Gitshell 注册·登录都是通过邮箱,作为一种古老而有效的工具,我们非常推荐通过邮箱沟通,所以邮箱是您的唯一账户ID,此外需要选择一个用户名,为了沟通的稳定和一致性,用户名也是固定不可修改的,全站使用ssl加密协议,如果您细心观察,可以看到我们在客户端进行加密传输密码,服务端不可逆再次加密,所以绝对不会保存您的原始密码,无从获取用户原始密码,也从来不会索取用户密码。 安全来自于意识,保护用户密码,保持一定复杂度,定期更改,可以有效的防止“坏人”。

使用http协议

对于较新版本的git,比如1.7.9以上,我们推荐使用http协议来访问git仓库,不需配置ssh key,使用注册用户名和密码就可以访问。

使用git credential-cache来记住用户名和密码:

git config --global credential.helper cache

如果需要设置cache的时间,设置记住用户名和密码的时间(秒为单位):

git config --global credential.helper 'cache --timeout=10000000'

git默认的postbuffer是比较小的,在push一个大的commit会出现错误,设置postbuffer,相关链接看这里

git config --global http.postBuffer 524288000

在使用多个账户的情况下,为了避免混淆用户,可以使用@yourname来强制指定,比如:

git clone https://cloudzhou@gitshell.com/cloudzhou/gitshell.git

管理ssh key

ssh 公钥密钥对是一切安全的基础,就像第一道防盗门。Gitshell出于安全的考虑,一概通过ssh协议交换数据,保护好ssh密钥是一个程序员应该有的安全意识,希望您通过1password之类的工具妥善保存,此外最好能定期的更新密钥。

多人共用密钥是严格不支持的!

如果您第一次使用,按照以下的方式配置ssh密码:

快速入门:

如果您使用任何类unix系统,第一次配置 ssh 公钥密钥,请按照步骤,复制灰色背景字符,在终端执行命令,和编辑文件

  1. 如果不存在~/.ssh/id_rsa,执行以下命令,生成 ssh 密钥

    ssh-keygen -t rsa  -N ''
    cat ~/.ssh/id_rsa.pub

    点击ssh public key 管理,输入标识保存公钥

  2. [可选]如果你要生成特定 ssh 密钥只用于gitshell(是第一步的另外可选方案)

    1. 执行以下命令,生成 ssh 密钥, 保存在 ~/.ssh/gitshell.com_rsa

      ssh-keygen -t rsa  -N '' -f ~/.ssh/gitshell.com_rsa;
    2. 编辑 ssh 客户端配置文件 ~/.ssh/config,使用您熟悉的编辑器,在后面添加

                                          
      Host gitshell.com
       User 
       IdentityFile ~/.ssh/gitshell.com_rsa
       PreferredAuthentications publickey
                                      
    3. 查看 ssh 公钥,使用 cat 命令,或者用编辑器打开,请复制 ssh 公钥的文本内容

      cat ~/.ssh/gitshell.com_rsa.pub

      点击ssh public key 管理,输入标识保存公钥

  3. ssh 公钥配置之后就可以长期使用了,请保护好密钥。点击创建仓库,详细仓库说明有助于推广

  4. 你已经可以使用 gitshell 来托管代码了,以下是示范的操作,详细信息请开始git的学习

                              
    $ git clone git@gitshell.com:your_name/repo_name
    $ cd repo_name;
    $ vim README.md
    $ git add README.md
    $ git commit -m "init README.md" .
    $ git push -u origin master
                          
  5. 配置 user.name, user.mail ,两者对后台统计,信息push有重要的作用,选择您注册的用户名和email按照下面配置

                                      
    $ git config --global user.name "your_name"
    $ git config --global user.email "your_email"
                                  

    如果不想 global,在每个仓库里面执行 git config ,去掉 --global 参数

  6. 感谢您走完整个配置流程,如果遇到任何问题,直接联系 support@gitshell.com,或者官方微博 http://weibo.com/gitshell

管理仓库

仓库是开发的基础容器,一切活动都源于仓库。如果您想让别人知道您的仓库,最好是
  1. 良好的命名,简单概要。
  2. 适当的注释,让人知道您的仓库做什么的,解决什么问题。
  3. 最重要的当然是不断的开发成为优秀的项目。

仓库除了代码之外,其他的数据都是被严格限制的,您务必理解这一点。

clone·push·pull代码

                              
$ git clone git@gitshell.com:your/repo
$ cd repo; vim README.md
$ git add README.md
$ git commit -m "init README.md"
$ git push -u origin master
$ git pull
                          

协同开发

gitshell 提供了多个成员共同开发仓库的协同方式,区别于企业级开发,目前的权限没有那么严格的界定,仓库所属者拥有最高的管理权,其余成员权限等同,需要注意的是,所有成员对仓库有完全的读写权限。作为群体开发,你需要知道:
  1. 尽可能的不要给别人造成麻烦。
  2. 拥有一个良好的 commit 记录。
  3. 保持代码结构的干净,清晰,和所有成员做好沟通工作。

从实践中学习

你要学习游泳,先把自己推下水吧。

出错代码

很不幸让你看到这里,以下是常见的错误代码:

404 资源找不到:

你想要的东西我找了404次都没有找到

500 内部错误代码:

系统内部出现了500个错误,如果是能重现的行为,请联系 support@gitshell.com,此致敬礼!

git外部学习资源

服务条款

用户在使用gitshell服务时必须符合中国有关法规,不得在使用中制作、复制、发布、传播以下信息:
  1. 违反宪法确定的基本原则的;
  2. 危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;
  3. 损害国家荣誉和利益的;
  4. 煽动民族仇恨、民族歧视,破坏民族团结的;
  5. 破坏国家宗教政策,宣扬邪教和封建迷信的;
  6. 散布谣言,扰乱社会秩序,破坏社会稳定的;
  7. 散布淫秽、色情、赌博、暴力、恐怖或者教唆犯罪的;
  8. 侮辱或者诽谤他人,侵害他人合法权益的;
  9. 煽动非法集会、结社、游行、示威、聚众扰乱社会秩序的;
  10. 以非法民间组织名义活动的;
  11. 含有法律、行政法规禁止的其他内容的。
免责协议:
用户须明白,本服务仅依其当前所呈现的状况提供,本服务涉及到互联网及移动通讯等服务,可能会受到各个环节不稳定因素的影响。因此服务存在因上述不可抗力、计算机病毒或黑客攻击、系统不稳定、用户所在位置、用户关机、GSM网络、互联网络、通信线路原因等造成的服务中断或不能满足用户要求的风险。开通服务的用户须承担以上风险,本公司和合作公司对服务之及时性、安全性、准确性不作担保,对因此导致用户不能发送和接受阅读消息、或传递错误,个人设定之时效、未予储存或其他问题不承担任何责任。 (为什么放在最后,因为绝大多数人不会认真看到这里的:))