上一个主题

6.3. 客户端工具

下一个主题

6.3.2. hub

本页

6.3.1. github:mac

GitHub专为Mac用户开发了一款图形化客户端应用github:mac,在Mac下操作GitHub更简单。软件下载地址: http://mac.github.com/

github:mac 可以实现版本库克隆、查看历史、提交、分支管理、与GitHub同步等功能。图6-12展示的是提交界面,在提交界面中同时显示了变更的差异比较,用户可以挑选文件中的部分变更进行提交,显然这个操作要比在命令行中执行git add –patchgit commit –patch要更加直观。

../images/mac-partial-commit.png

图6-12:筛选文件中的部分更改进行提交

github:mac和GitHub深度集成,当配置好关联的GitHub账号后,会自动在本地创建专用的SSH公钥/私钥对文件 ~/.ssh/github_rsa (如果该文件不存在的话),然后将公钥文件传递到GitHub网站并自动完成配置。新增的SSH公钥文件显示在GitHub网站的账号设置中,如图6-13所示:

../images/mac-new-ssh-pubkey.png

图6-13:在GitHub上自动添加的SSH公钥

同时github:mac还在本地将新生成的私钥文件添加到ssh-agent认证代理中,这样一旦通过 SSH 协议连接GitHub,首先采用该公钥/私钥对进行身份认证。用下面的命令可以查看添加到ssh-agent中的私钥文件。

$ ssh-add -l
2048 aa:01:4f:d2:14:ba:5f:9f:8c:dc:b5:9d:44:cd:8e:18 /Users/jiangxin/.ssh/github_rsa (RSA)

这种透明的公钥认证管理非常酷,对于大多数只使用唯一一个GitHub账号的用户来说是非常方便的。但如果用户拥有多个GitHub账号并需要不时切换账号,这种实现却很糟糕,会导致认证错误。因为当ssh-agent认证代理缓存了私钥后,连接由文件 ~/.ssh/config 设置的 SSH 别名主机无法使用指定的公钥/私钥对进行认证,导致认证失败。

遇到 GitHub 账户 SSH 认证问题,可以运行下面命令清空ssh-agent缓存的私钥。

$ ssh-add -d ~/.ssh/github_rsa
Identity removed: /Users/jiangxin/.ssh/github_rsa (/Users/jiangxin/.ssh/github_rsa.pub)