DICOM:DICOM3.0标准中文版开源书籍协同编辑之“Github Pull Requests”

背景:

博文专栏中介绍过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 “[email protected]”生成SSH的公钥密钥文件。

DICOM:DICOM3.0标准中文版开源书籍协同编辑之“Github Pull Requests”_第1张图片
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。
DICOM:DICOM3.0标准中文版开源书籍协同编辑之“Github Pull Requests”_第2张图片
4. 将id_rsa.pub的内容拷贝到github的Setting下的SSH keys子项,注意id_rsa.pub的打开方式,要确保不出现乱码,并完全拷贝其内容。
【注】:为了避免打开文件方式有误,可以在cmd命令行下使用clip命令拷贝id_rsa.pub内容,具体指令为: clip < id_rsa.pub
DICOM:DICOM3.0标准中文版开源书籍协同编辑之“Github Pull Requests”_第3张图片
5. 上传代码到github。最后就是提交代码了,这里为了方便,直接从github上clone已有的DICOM-Chinse开源书籍仓库。修改其中的README.md内容后,在使用git bash提交。详细的操作指令如下:

git clone [email protected]:zssure-test/DICOM-Chinese.git
git config user.name "zssure-test"
git config user.email "[email protected]"
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?

DICOM:DICOM3.0标准中文版开源书籍协同编辑之“Github Pull Requests”_第4张图片

说明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,但是其客户端登录时并未使用,官方说明参见下图:

DICOM:DICOM3.0标准中文版开源书籍协同编辑之“Github Pull Requests”_第5张图片

Github的Pull Requests协同编辑:

操作步骤

github支持多人协作,因此对于IT从业者,可以使用github提供的pull requests功能参与DICOM标准中文版开源项目。具体的操作流程比较简单,主要分为以下几步:
1. 注册github账号,搜索DICOM-Chinese仓库。

DICOM:DICOM3.0标准中文版开源书籍协同编辑之“Github Pull Requests”_第6张图片
2. fork搜索到的DICOM-Chinese仓库到自己的github账号,如下图所示:
DICOM:DICOM3.0标准中文版开源书籍协同编辑之“Github Pull Requests”_第7张图片
3. 使用Github for Windows客户端或者git bash将fork后的DICOM-Chinese仓库下载到本地进行个人的修改、提交,此处即可使用上述提到的git bash用SSH方式提交修改到github。 【注】:此时所做的所有修改都与之前zssure-thu下的DICOM-Chinese仓库无关,这正是git采用分布式管理的优点。
4. 请求将本人的修改整合到主仓库,此处即为: DICOM3.0标准中文版主仓库, zssure-thu\DICOM-Chinese
。利用github的Pull Requests功能,发起整合请求。具体关于Pull Requests的介绍参见官方说明 Using Pull Requests。
DICOM:DICOM3.0标准中文版开源书籍协同编辑之“Github Pull Requests”_第8张图片
5. 等待主仓库管理员审核,Merge&Close上述Pull Requests后即可将本人修改整合到 DICOM-Chinese主仓库
DICOM:DICOM3.0标准中文版开源书籍协同编辑之“Github Pull Requests”_第9张图片
DICOM:DICOM3.0标准中文版开源书籍协同编辑之“Github Pull Requests”_第10张图片

时序图

Created with Raphaël 2.1.0 Pull Requests of Github RepoLocal RepoLocal RepoGithub RepoGithub RepoRemote RepoRemote (2)Clone via HTTPS or SSH (1)Fork your own repo (3)Make local changes by yourself (3.1)git add (3.2)git commit (4)git push by SSH or HTTPS (5)Create and Send Pull Request (6)discussion (7)discussion (8)Merge Pull Request (9)Close Pull Request

时序图说明:
RepoLocal表示克隆到本地的版本库,即F:\DICOM-Chinese
RepoGithub表示Fork后存储在Github的版本库,即zssure-test\DICOM-Chinese
RepoRemote表示DICOM-Chinese开源书籍在Github上的主库,即zsssure-thu\DICOM-Chinese

参考资料:

  1. Git配置
  2. github多账号登陆
  3. Git提交代码到Github





作者:[email protected]
时间:2015-09-11

你可能感兴趣的:(github,git,push,pull,DICOM)