Back to Source Control Management

See also GitGitLab

GitHub

GitHub是一个web方式的Git版本库托管服务(hosting service),提供包含分布式版本控制和源代码管理(SCM)功能等全部Git功能,以及由GitHub提供的自有功能。

不像Git这种严格意义的命令行工具,GitHub提供了web方式的图形接口以及与桌面、移动端的集成。除了提供了访问控制,GitHub还为每个项目提供了一些方便的社会化软件开发功能,包括bug跟踪(bug tracking)、功能请求(feature requests)、任务管理和wiki等。

GitHub同时提供付费账户(private repositories)和免费账户。这两种账户都可以创建公开的代码仓库,但只有付费账户才能创建私有的代码仓库。

截止2016年4月,GitHub已经有超过1400万注册用户(14 million users)和3500万代码库(35 million repositories),使之成为世界上最大的代码存放网站和开源社区。

GitHub的商标吉祥物是Octocat,一个漫画风格的拟人化猫头,带有足类动物的四肢。

1. Services

1.1. GitHub

GitHub平台于2007年10月1日开始开发。网站由Tom Preston-Werner、Chris Wanstrath和PJ Hyett于2008年2月以beta版本开始上线,4月份正式发布。

GitHub里面的项目可以通过标准的Git命令进行访问和操作。同时,所有的Git命令都可以用到GitHub项目上面。GitHub同时允许注册用户和非注册用户在网页中浏览项目,还开发了针对Windows和OS X操作系统的桌面客户端。此外,也可以使用第三方插件来实现Git功能。

网站提供了一系列社交网络具有的功能,例如赞、关注、评论。用户可以通过复刻他人项目的形式参与开发,并可通过社交网络图( social network graph)来查看有多少开发者参与了开发并追踪最新的forks版本。此外网站还有Wiki(通过一个名为 gollum 的软件实现)等功能。

用户必须注册一个账号然后才能贡献内容,而任何人都可以浏览和下载公共资源库中的内容。注册用户可以讨论、管理和创建并编辑项目、参与他人项目的提交和代码审查。

GitHub由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。

1.1.1. Scope

GitHub通常用于软件开发。GitHub还支持以下格式和功能:

1.1.2. Licensing of repositories

GitHub的许可条款并不要求公有仓库满足自由软件标准。在创建软件仓库时,GitHub会询问用户准备采取的软件许可证,此外用户也可以使用自己的许可证。

1.2. GitHub Enterprise

GitHub Enterprise和GitHub的服务类似,不过它为大型企业的开发团队量身定制,版本库一般会放在企业防火墙后面。

1.3. Gist

1.4. Education program

GitHub与Bitnami、Crowdflower、DigitalOcean、DNSimple、HackHands、Namecheap、Orchestrate、Screenhero、SendGrid、Stripe、Travis CI和虚幻引擎等共同合作,于2014年10月7日发起了一个名为GitHub学生开发者套装的项目。该项目为学生提供了一些免费的开发工具和服务。

2. History

3. Usage

https://usersnap.com/blog/github-hacks-productivity/ The best GitHub tutorial

3.1. Find cool project on github

https://github.com/trending 按照开发语言、趋势时段,搜索最流行的 Repositories/Developers

trending.png

3.2. Permission denied (public key)

➜  tmp ssh -T git@github.com
The authenticity of host 'github.com (192.30.255.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.255.113' (RSA) to the list of known hosts.
Permission denied (publickey).

http://www.jianshu.com/p/f22d02c7d943 在github的Settings中新建一个SSH key,将id_rsa.pub中的内容复制到Key中

➜  tmp ssh git@github.com 
PTY allocation request failed on channel 0
Hi twotwo! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

3.3. Create a new repository

命令行直接创建reporsitory失败:

➜  /tmp rd test             
➜  /tmp mkdir test ; cd test
test git init
Initialized empty Git repository in /private/tmp/test/.git/
test git:(master) touch README.md
test git:(master) ✗ git add README.md
test git:(master) ✗ git commit -m "first commit"
[master (root-commit) 05f3cc1] first commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.md
test git:(master) git remote add origin https://github.com/twotwo/test.git
test git:(master) git push -u origin master
remote: Repository not found.
fatal: repository 'https://github.com/twotwo/test.git/' not found

Create_a_new_repository.png

3.4. Repositories Compare

https://bayne.github.io/github-compare/

github_compare.png

4. Reference

MainWiki: GitHub (last edited 2018-01-26 16:05:46 by twotwo)