码迷,mamicode.com
首页 > 其他好文 > 详细

DICOM:DICOM中文版开源书籍协同编辑之“Github Pull Requests”

时间:2015-09-12 06:24:58      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:github   git   push   pull   dicom   

背景:

博文专栏中介绍过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 clonegit 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仓库

技术分享

2. fork搜索到的DICOM-Chinese仓库到自己的github账号,如下图所示:
技术分享

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
技术分享

5. 等待主仓库管理员审核,Merge&Close上述Pull Requests后即可将本人修改整合到DICOM-Chinese主仓库
技术分享

技术分享

时序图

Created with Rapha?l 2.1.0Pull Requests of GithubRepoLocalRepoLocalRepoGithubRepoGithubRepoRemoteRepoRemote(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





作者:zssure@163.com
时间:2015-09-11

版权声明:本文为zssure原创文章,转载请注明出处,未经允许不得转载。

DICOM:DICOM中文版开源书籍协同编辑之“Github Pull Requests”

标签:github   git   push   pull   dicom   

原文地址:http://blog.csdn.net/zssureqh/article/details/48381269

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!