git 01创建GitHub账号

注册GitHub账号,只要点击导航条中的“Signup and Pricing”,或者点击首页中那个大大的“Plans, Pricing and Signup”按钮,即进入收费方案介绍及注册页面。
收费?不必担心,开源软件托管是GitHub的基石,对于开源项目的版本库(即非私有版本库)的托管,GitHub是免费的。在收费方案及注册页面中,最上面的就是针对于开源的免费托管方案,如图2-1所示。

图1:针对开源项目(公开版本库)的免费方案

至于本页其他付费方案,将在后面的章节介绍。点击免费方案右侧的“Create a free account”按钮,就进入到注册页面,如图2所示。

图2:账号注册

GitHub的注册页面非常简洁,只有登录ID,邮件地址和口令需要输入。要注意的是每个邮件地址只能注册一次。
注册完毕即以新注册的账号自动登录。登录后即进入用户的仪表板(Dashborad)页面。首次进入的仪表板页面还会在其中显示GitHub BootCamp(GitHub 新手训练营)的链接,以帮助新用户快速入门。如果图2-3所示。

图3:登录后的GitHub首页

仪表板页面是用户最重要的页面,因为创建新项目(新版本库)的链接就位于该页面。重新设计的GitHub用户界面[[1]](http://www.worldhello.net/gotgithub/02-join-github/010-account-setup.html#idpycharm git ssh3)中跳转到仪表板页面的链接不像之前那么直观,鼠标移动到页面左上角的“github”文字图标会发现此图标可以点击,该文字图标即是进入仪表板页面的快捷。
在页面右上方显示当前登录用户的名称和头像。图2-3中显示登录用户为 gotgithub,而用户头像因为尚未设置所以显示为缺省图片——GitHub吉祥物Octocat的剪影。在页面右上方还有三个图标,从左至右分别是:通知、账号设置和退出。点击账号设置图标对账号进行进一步设置,如图2-4所示。

图2-4:账户设置页

账号设置的第一个页面pycharm git ssh是对用户公开身份信息进行设置,所有内容均为可选项,如果填写将显示在个人页面中,并能被所有人访问。注意修改用户头像需要访问第三方头像设置网站:gravatar.com,Gravatar网站提供的头像服务是一个通用服务,可为大部分Web应用所使用。
图2-4中还显示了当前用户使用的GitHub托管方案(Free)和使用统计。因为当前注册用户选择的是免费方案,所以可用的私有版本库数量和私有空间的协同者数目都是零。免费方案拥有300MB托管空间,因当前尚未创建版本库托管,所以空间占用为零。GitHub对开源软件的300MB托管空间限制并非硬性限制,可以申请扩增托管空间,如果不存在滥用情况的话。
点击菜单中的“Account Admin”,可以更改口令、查看API Token、修改用户名,以及删除自身账号,如图2-5所示。

图2-5:账户管理

其中API Token是和用户口令相关的密钥,当用户口令更改时API Token也随之更改。GitHub的某些应用会使用API Token进行身份认证,从而避免直接使用用户口令造成泄露的风险。API Token若泄露的危害要远远小于口令泄露,这因为API Token不能用于登录GitHub网站等,而且一旦API Token泄露可以很容易通过更改口令的方式更换API Token。
点击菜单中的“Email Addresses”,可以添加和删除邮件地址,如图2-6所示。GitHub允许为一个账号绑定多个邮件地址,以便能够将Git版本库中的提交(提交者以 “用户名 <邮件地址>” 的格式给出)正确对应到GitHub账户。

图2-6:邮件地址管理

GitHub为托管的Git版本库提供SSH协议支持,即用户可以用公钥认证的方式连接到GitHub的SSH服务器。下面的示例用ssh命令连接github.com的SSH服务,登录用户名为git(所有GitHub用户共享此SSH用户名,不要写成其他)。

$ ssh -T git@github.com
Permission denied (publickey).

上面的示例显示登录失败,这是因为我们尚未在GitHub账户中正确设置公钥认证。图2-7显示的是GitHub的SSH公钥设置界面。

图2-7:SSH公钥管理

要想向GitHub添加SSH公钥,首先要确保正确生成了对应的公钥/私钥对。关于SSH公钥认证,在我的《Git权威指南》一书的“第29章使用SSH协议”中有详细介绍,这里仅做简要的介绍。
GitHub的SSH服务支持OpenSSH格式的公钥认证,可以通过Linux、Mac OS X、或Cygwin下的ssh-keygen命令创建公钥/私钥对。命令如下:

$ ssh-keygen

然后根据提示在用户主目录下的.ssh目录中创建默认的公钥/私钥对文件,其中/.ssh/id_rsa是私钥文件,/.ssh/id_rsa.pub是公钥文件。
注意私钥文件要严加保护,不能泄露给任何人。如果在执行ssh-keygen
命令时选择了使用口令保护私钥,私钥文件是经过加密的。至于公钥文件~/.ssh/id_rsa.pub则可以放心地公开给他人。
也可以用ssh-keygen命令以不同的名称创建多个公钥,当拥有多个GitHub账号时,非常重要。这是因为虽然一个GitHub账号允许使用多个不同的SSH公钥,但反过来,一个SSH公钥只能对应于一个GitHub账号。下面的命令在~/.ssh目录下创建名为gotgithub的私钥和名为gotgithub.pub的公钥文件。

$ ssh-keygen -C "gotgithub@gmail.com" -f ~/.ssh/gotgithub

当生成的公钥/私钥对不在缺省位置(~/.ssh/id_rsa等)时,使用ssh命令连接远程主机时需要使用参数-i <filename>指定公钥/私钥对。或者在配置文件/.ssh/config中针对相应主机进行设定。例如对于上例创建了非缺省公钥/私钥对/.ssh/gotgithub,可以在~/.ssh/config配置文件中写入如下配置。

Host github.com 
User git 
Hostname github.com 
PreferredAuthentications publickey 
IdentityFile ~/.ssh/gotgithub

将SSH私钥添加到ssh代理。

ssh-add ~/.ssh/gotgithub

好了,有了上面的准备,就将~/.ssh/gotgithub.pub文件内容拷贝到剪切板。公钥是一行长长的字符串,若用编辑器打开公钥文件会折行显示,注意拷贝时切莫在其中插入多余的换行符、空格等,否则在公钥认证过程因为服务器端和客户端公钥不匹配而导致认证失败。命令行下可直接用pbcopy命令[2]将文件内容拷贝到剪切板以避免拷贝错误:

$ cat ~/.ssh/gotgithub.pub | pbcopy

然后将公钥文件中的内容粘贴到GitHub的SSH公钥管理的对话框中,如图2-8所示。

图2-8:添加SSH公钥认证

设置成功后,再用ssh命令访问GitHub,会显示一条认证成功信息并退出。在认证成功的信息中还会显示该公钥对应的用户名。

$ ssh -T git@github.com
Hi gotgithub! You've successfully authenticated, but GitHub does not provide shell access.

如果您未能看到类似的成功信息,可以通过在ssh命令后面添加-v参数加以诊断,会在冗长的会话中看到认证所使用的公钥文件等信息。然后比对所使用的公钥内容是否和GitHub账号中设置的相一致。

$ ssh -Tv git@github.com
...
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/jiangxin/.ssh/gotgithub
...
debug1: Entering interactive session.
Hi gotgithub! You've successfully authenticated, but GitHub does not provide shell access....

账号设置的最后一项是向GitHub提供你的求职信息。GitHub作为一个优秀程序员的聚集地,已成为一个IT人才招聘的途径,如果你需要找工作的话,提供简历并打开“Available for hire”选项,GitHub会向你推荐合适的工作机会。如图2-9所示。

图2-9:求职信息管理

[1]
https://github.com/blog/1007-skinny-header

[2]
Mac下的命令行工具pbcopy和pbpaste可以在命令行下操作剪贴板,
Linux下的命令行工具xsel亦可实现类似功能。
在Linux下可以创建别名用xsel命令来模拟pbcopy和pbpaste 。

alias pbcopy='xsel --input'
alias pbpaste='xsel --output'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,401评论 25 707
  • 长长的走廊,白色的墙,白色的地板,空空,空空,空荡荡。站在走廊的一端,我好像看不见另一端的尽头,我慢慢地向前走,眼...
    孝影杨阅读 264评论 0 0
  • 学习爬虫第3天,爬取小猪网租房信息。由于网页改版,目前没有显示性别信息,所以在做练习时去掉了该项。http://b...
    luckywoo阅读 350评论 0 0
  • “但 eBay 让我明白一个事实,有些人偏偏喜欢以令人意想不到的方式与对手竞争。我正忙于拍照、编辑并上传我的竞卖方...
    新月饭店大小姐阅读 128评论 0 0
  • 读罢《艽野尘梦》,唏嘘不已。 这是一本充满传奇色彩的书,书中记叙的故事,无论是神秘古朴的异域风情,还是酣畅淋漓的平...
    夏个夏天阅读 3,666评论 15 72