背景:
博文专栏中介绍过DICOM标准中文版书籍的协作模式DICOM:开源书籍之『DICOM标准中文版』启动计划,之所以选择看云平台目的是希望更多的、各行各业的人员加入,例如英语专业、非医疗从业者都十分欢迎,对翻译中的语法、语言表述,甚至专业知识点进行评判修改。
对于日常工作很少使用版本管理工具的人员来说,看云的操作既简捷明了,又能很好的实现多人协作的目的。当然,如果您是一名IT从业者,已熟练使用SVN和GIT各种版本工具的人员,可以通过Github直接发起Pull requests请求,待审核通过后合并到master主线中。
本文中通过注册Github的一个测试账号zssure-test,给出使用Github的Pull Request来完成DICOM3.0中文版开源书籍翻译的协作的具体实例,详情如下。
Windows 7环境使用Git Bash提交代码到Github
下面就介绍一下如何在Windows 7环境下直接使用git bash,以ssh方式提交代码到github。
1. 下载安装msysgit:该部分与Windows环境下常见的软件安装相同,一直单击”下一步”即可完成安装。详情可参考百度经验:如何在windows下安装GIT,或者参考专栏之前的博文利用hexo构建自己的Github主页。
2. 生成ssh-key。在成功安装msysgit后可以进入git bash(此时Path环境变量已经自动指向了默认的安装目录C:\Program Files (x86)\Git\cmd),参照github官方文档生成ssh-key
2.1. 输入ssh-keygen -t rsa -b 4096 -C “zssure-test@163.com”生成SSH的公钥密钥文件。
3. 添加生成的key到ssh-agent。
【注】:这一步要额外注意,直接参照官方文档中的ssh-agent -s,以及ssh-add 会弹出“Could not open a connection to your authentication agent.”的错误提示
此处msysgit环境启动ssh-agent需要用到C:\Program Files (x86)\Git\cmd安装目录下的 start-ssh-agent.cmd批处理命令。
不过此时默认添加并非是刚才我们生成的key,因此注意下面先清空ssh-key,再添加我们自己的key。
4. 将id_rsa.pub的内容拷贝到github的Setting下的SSH keys子项,注意id_rsa.pub的打开方式,要确保不出现乱码,并完全拷贝其内容。
【注】:为了避免打开文件方式有误,可以在cmd命令行下使用clip命令拷贝id_rsa.pub内容,具体指令为:clip < id_rsa.pub
5. 上传代码到github。最后就是提交代码了,这里为了方便,直接从github上clone已有的DICOM-Chinse开源书籍仓库。修改其中的README.md内容后,在使用git bash提交。详细的操作指令如下:
git clone git@github.com:zssure-test/DICOM-Chinese.git
git config user.name "zssure-test"
git config user.email "zssure@163.com"
git config --local
#此处任意修改README.md的内容
git status #查看修改状态
git add . #添加所有修改
git commit -m "zssure git bash test" #提交修改到本地仓库
git push origin master #push修改到github
说明1:Github提交方式:
上述过程中需要注意的是git clone和git push阶段使用的仓库连接都是SSH类型的连接。在Github的仓库主页右侧有三种连接方式:HTTPS、SSH、Subversion。关于该三种方式的详细介绍参见官方说明Which remote URL should I use?
说明2:问题排查:
之前参照了网络上诸多解决方案(详情参见博文最后的链接),在本地测试时一直出现问题,不是无法创建ssh-key,就是无法连接github。后来仔细排查了一下(查看环境变量),确定了本地git bash以及ssh的安装环境。在默认的cmd命令行下使用的是C:\Program Files (x86)\Git\cmd路径下的git.exe。而C:\Program Files (x86)\Git\bin目录下的ssh工具对应的目录是C:\Program Files (x86)\Git.ssh而非默认的C:\Users\Administrator.ssh目录
【注】:后来发现本地之所以出现该目录是因为安装Github for Windows客户端时生成的,文件夹下面还有默认生成的github_rsa和github_rsa.pub,虽然Github客户端会生成ssh-key,但是其客户端登录时并未使用,官方说明参见下图:
Github的Pull Requests协同编辑:
操作步骤
github支持多人协作,因此对于IT从业者,可以使用github提供的pull requests功能参与DICOM标准中文版开源项目。具体的操作流程比较简单,主要分为以下几步:
1. 注册github账号,搜索DICOM-Chinese仓库。