4. 托管本地项目到码云
本地项目可以直接托管到码云,不需要在 web 上创建项目。
1. 选择 VCS
- Import into Version Control
- 托管项目到码云
2. 填写项目信息,可选择公有或私有
3. 选择文件,填写 commit 信息。点击OK
即可
1.5、常用工具及插件教程
2、创建码云账号
2.1、创建码云账号
注册码云账号,只要点击导航条中的“注册”,或者点击首页中那个大大的“加入码云”按钮,即可进入注册页面。
收费吗?目前除企业版外均为免费。开源软件托管是码云的基础,对于开源项目的版本库(无论是公有版本库,还是私有版本库)的托管,码云都是免费的。在码云首页中,就有针对于个人用户的免费托管方案,如图2-1所示。
图2-1:针对个人用户的免费方案
进入码云的注册界面,依次填入各项,需注意的是:邮箱最好填写国内的邮箱,以免因为众所周知的原因无法接收激活邮件,个性地址一经选定,无法修改,请慎重填写。
图2-2:注册界面
我们会向您的邮箱发送一份激活邮件,请点击其中的链接激活账号,账号激活后,注册流程就算完成了。注册完毕即以新注册的账号登录,登录后即进入用户的控制面板页面。如果图2-3所示。
图2-3:登录后的码云首页
控制面板页面是用户最重要的页面,因为在这个页面中不仅可以看到组织成员的动态,还可以看到自己的项目信息,代码片段,PR,Issues,以及加入的企业信息,非常方便。
在页面右上方显示当前登录用户的名称和头像。图2-3中显示登录用户为 “不要404”。在页面右上方还有两个图标,从左至右分别是:通知和创建。点击头像图标进入【修改资料】对账号进行进一步设置,如图2-4所示。
图2-4:账户设置页
点击菜单中的【修改账户】,可以更改私人令牌、更换登陆密码、以及修改注册邮箱,如图2-5所示。
图2-5:账户管理
其中私人令牌是和用户密码相关的密钥,当用户密码更改时私人令牌也随之更改。码云的某些应用会使用私人令牌进行身份认证,从而避免直接使用用户密码造成泄露的风险。私人令牌若泄露的危害要远远小于密码泄露,这因为私人令牌不能用于登录码云网站等,而且一旦私人令牌泄露可以很容易通过更改密码的方式更换私人令牌。
码云只允许为一个账号绑定对应一个邮件地址,以便能够将 Git 版本库中的提交正确对应到码云账户。
码云为用户提供两种接受信息的方式:邮件和站内私信,如图2-6所以。
图2-6:通知方式
码云为托管的 Git 版本库提供 SSH 协议支持,即用户可以用公钥认证的方式连接到码云的 SSH 服务器。点击 生成并部署SSH key 了解具体实现步骤。
码云作为一个优秀程序员的聚集地,期待着你的加入!!
3、代码托管
3.1、创建第一个项目
1、创建项目
点击右上角的或者
,跳转至项目创建页面:
依次填写各项信息然后点击创建就可以了,这样我们一个项目就创建好了如果没有意外,你将看到这个页面:
这样,我们在码云平台就创建好了一个项目
2、本地初始化一个项目
首先,你需要执行下面两条命令,作为 git 的基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中。
git config --global user.name "你的名字或昵称"
git config --global user.email "你的邮箱"
然后在你的需要初始化版本库的文件夹中执行:
git init
git remote add origin <你的项目地址> //注:项目地址形式为:http://git.oschina.net/xxx/xxx.git或者 [email protected]:xxx/xxx.git
这样就完成了一次版本你的初始化。
如果你想克隆一个项目,只需要执行:
git clone <项目地址>
3、完成第一次提交
进入你已经初始化好的或者克隆项目的目录,然后执行:
git pull origin master
<这里需要修改/添加文件,否则与原文件相比就没有变动>
git add .
git commit -m "第一次提交"
git push origin master
然后如果需要账号密码的话就输入账号密码,这样就完成了一次提交。
此时,你可以在你的个人面板、项目主页查看到你的提交记录,例如:http://git.oschina.net/oschina/git-osc/commit/f3dd1c5bae48fa4244e2595a39e750e5606dd9be]([http://git.oschina.net/oschina/git-osc/commit/f3dd1c5bae48fa4244e2595a39e750e5606dd9be](http://git.oschina.net/oschina/git-osc/commit/f3dd1c5bae48fa4244e2595a39e750e5606dd9be)
按照本文档新建的项目时,在码云平台仓库上已经存在 readme 文件,故在提交时可能会存在冲突,这时您需要选择的是保留线上的文件或者舍弃线上的文件,如果您舍弃线上的文件,则在推送时选择强制推送,强制推送需要执行下面的命令:
git push origin master -f
如果您选择保留线上的 readme 文件,则需要先执行:
git pull origin master
然后才可以推送,如果发生冲突,则需要先解决冲突,关于如何处理冲突,请参阅如何处理代码冲突这一小节。
3.2、公钥认证管理
开发者向码云版本库写入最常用到的协议是 SSH 协议,因为 SSH 协议使用公钥认证,可以实现无口令访问,而若使用 HTTPS 协议每次身份认证时都需要提供口令。使用 SSH 公钥认证,就涉及到公钥的管理。
1.如何生成ssh公钥
你可以按如下命令来生成sshkey:
ssh-keygen -t rsa -C "[email protected]"
# Generating public/private rsa key pair...
# 三次回车即可生成 ssh key
查看你的public key,并把他添加到 Git @ OSC SSH key添加地址
cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
添加后,在终端(Terminal)中输入
ssh -T [email protected]
若返回
Welcome to Git@OSC, yourname!
则证明添加成功。 *
2.怎么添加用户ssh key?
点击右上角的
标志,进入个人中心,然后点击左侧的ssh公钥后在下图位置填写你的ssh公钥。
点击确定,然后验证密码(即你的注册账号密码)就完成了ssh公钥添加。
3.项目的 ssh key 和用户的 ssh key 两处地方有什么不同?
项目的 sshkey 只针对项目,且我们仅对项目提供了部署公钥,即
项目下的公钥仅能拉取项目
,这通常用于生产服务器拉取仓库的代码。而用户的 key 则是针对用户的,用户添加了 key 就对用户名下的项目和用户参加了的项目具有权限,一般而言,用户的 key 具有推送和拉取的权限,而项目的 key 则只具有拉取权限
3.3、建立主页
很多开源项目托管平台都支持为托管的项目建立主页,但主页的维护方式都没有码云这么酷。大多数托管平台无非是开放一个FTP或类似服务,用户把制作好的网页或脚本上传了事,而在码云用户通过创建特殊名称的 Git 版本库或在 Git 库中建立特别的分支实现对主页的维护。
码云 Pages
是一个免费的静态网页托管服务,您可以使用 码云 Pages
托管博客、项目官网等静态网页。如果您使用过 Github Pages
那么您会很快上手使用码云的 Pages
服务。
Jekyll 是一个简单的博客形态的静态站点生产机器。它有一个模版目录,其中包含原始文本格式的文档,通过 Markdown (或者 Textile) 以及 Liquid 转化成一个完整的可发布的静态网站,你可以发布在任何你喜爱的服务器上。Jekyll 也可以运行在 码云Pages上,也就是说,你可以使用码云的服务来搭建你的项目页面、博客或者网站,而且是完全免费的。
Jekyll 使用文档:http://jekyll.bootcss.com/docs/home/
1. 使用前须知
1、项目必须有index.html才可以正常访问2、静态网页的样式可以自己写,也可以拿一些静态模版来修改,Pages
服务本身不提供任何形式的模版,但我们后续会陆续增加例子,供大家参考使用。3、如果你想以根目录的形式访问自己的静态网站,只需要建立一个与自己个性地址同名的项目即可,如http://git.oschina.net/ipvb 这个用户,想要创建一个自己的站点,但不想以子目录的方式访问,想以ipvb.oschina.io
直接访问,那么他就可以创建一个名字为ipvb
的项目http://git.oschina.net/ipvb/ipvb 部署完成后,就可以以http://ipvb.oschina.io 进行访问了。
2. 一个小白的Pages搭建之旅
A.新建项目 test_pages
点击创建完成项目的创建
B.添加文件 index.html (注意名称是index.html哦!)
点击新建文件文件名输入
index.html
,内容就是简单的html
点击提交,将文件提交到仓库
C.选择pages服务
D.选择需要部署的分支,这里选择Master启动服务。
E.访问生成的网站地址,即可以查看你部署的静态页面啦!
3. 已经有Pages项目如何部署到码云的Pages
以jQuery-File-Upload
项目为例,项目地址:https://github.com/blueimp/jQuery-File-Upload
它在Github上的Pages地址是:https://blueimp.github.io/jQuery-File-Upload/
如果想把它转移到码云Pages
,只需要登录你的码云账户,点击右上角的+
号,选择新建项目
然后点击创建,项目会在后台自动导入,导入成功后,点击菜单栏的Pages
这里我们默认的Pages
服务分支是osc-pages
,但是你也已选择自己静态页面所在的分支,这里jQuery-File-Upload
项目的静态页面分支是gh-pages
,选择gh-pages
并点击启动服务。
至此,静态网页已经部署成功,访问提供的地址:http://silentboy.oschina.io/jQuery-File-Upload/ 即可查看到jQuery-File-Upload
项目的静态官网。
4. Pages进阶,使用Jekyll生成自己的静态网页
Jekyll 究竟是什么?
Jekyll 是一个简单的博客形态的静态站点生产机器。它有一个模版目录,其中包含原始文本格式的文档,通过 Markdown (或者 Textile) 以及 Liquid 转化成一个完整的可发布的静态网站,你可以发布在任何你喜爱的服务器上。Jekyll 也可以运行在 码云Pages上,也就是说,你可以使用码云的服务来搭建你的项目页面、博客或者网站,而且是完全免费的。
Jekyll 使用文档:http://jekyll.bootcss.com/docs/home/
其他帮助:
如何自定义404?答:在项目根目录新建404.html文件即可。
4、协同工作
4.1、Fork + Pull 模式
参与码云中的项目开发,最常用和推荐的首选方式是“Fork + Pull”模式。在“Fork + Pull”模式下,项目参与者不必向项目创建者申请提交权限,而是在自己的托管空间下建立项目的派生(Fork)。至于在派生项目中创建的提交,可以非常方便地利用码云的 Pull Request 工具向原始项目的维护者发送 Pull Request。
1、什么是 Pull Request?
Pull Request 是两个仓库提交变更的一种方式,通常用于 fork 项目与被 fork 项目的差异提交,同时也是一种非常好的团队协作方式,下面,就来讲解如何在码云平台提交 Pull Request:
PS:码云平台限制 Pull Request 源项目与目标项目需存在 fork 与被 fork 关系,故如果你要提交 Pull Request,必须先 fork 一个项目,然后才能对该项目提交 Pull Request,同时,以该项目为父项目的所有项目,您也均可以提交 Pull Request。
2、如何 fork 项目
fork 项目时非常简单的,进到项目页面,然后找到右上角的 fork 按钮,点击后再次点击确定,等待系统在后台完成仓库克隆操作,你就完成了 fork 操作,如图:
3、如何提交 Pull Request
首先,您的项目与目标项目必须存在差异,这样才能提交,比如这样:如果不存在差异,或者目标分支比你提Pull Request的分支还要新,则会得到这样的提示:
然后,填入Pull Request的说明,点击提交Pull Request,就可以提交一个Pull Request了,就想下图所示的那样:
4、如何对已经存在的 Pull Request 的进行管理
首先,对于一个已经存在的 Pull Request,如果只是观察者,报告者等权限,那么访问将会受到限制,具体权限限制请参考码云平台关于角色权限的内容,下文涉及的部分,仅针对管理员权限,如果您发现不太一样的地方,请检查您的权限是不是管理员或该 Pull Request 的创建者。
5、如何修改一个已经存在的 Pull Request
点击 Pull Request 的详情界面右上角的编辑按钮,就会弹出编辑框,在编辑框中修改你需要修改的信息,然后点击保存即可修改该 Pull Request,如下图所示:请注意,在该界面,可以对 Pull Request 进行指派负责人,指派测试者等等操作,每一个操作均会通知对应的人员
6、对 Pull Request 的 bug 修改如何提交到该 Pull Request 中
对于 Pull Request 中的 bug 修复或者任何更新动作,均不必要提交新的 Pull Request,仅仅只需要推送到您提交 Pull Request 的分支上,稍后我们后台会自动更新这些提交,将其加入到这个 Pull Request 中去
7、Pull Request 不能自动合并该如何处理
在提交完 Pull Request 的后,在这个 Pull Request 处理期间,由原本的能自动合并变成不能自动合并,这是一件非常正常的事情,那么,这时,我们有两种选择,一种,继续合并到目标,然后手动处理冲突部分,另一种则是先处理冲突,使得该 Pull Request 处于可以自动合并状态,然后采用自动合并,一般来讲,我们官方推荐第二种,即先处理冲突,然后再合并。具体操作为:先在本地切换到提交 Pull Request 的分支,然后拉取目标分支到本地,这时,会发生冲突,参考如何处理代码冲突 这一小节将冲突处理完毕,然后提交到 Pull Request 所在的分支,等待系统后台完成Pull Request的更新后,Pull Request 就变成了可自动合并状态
8、Pull Request 不小心合并了,可否回退
对于错误合并的 Pull Request,我们提供了回退功能,该功能会产生一个回退 XXX 的 Pull Request,接受该 Pull Request 即可完成回退动作,注意,回退本质上是提交一个完全相反的 Pull Request,所以,你仍然需要进行测试来保证完整性,另,为了不破坏其他 Pull Request,建议只有需回退的 Pull Request 处于最后一次合并操作且往上再无提交时执行回退动作,否则请手动处理。
4.2、组织和团队
首先,在码云平台,组织功能设计上是为了满足大型开发团队的需要,是一堆人员与项目的集合。成员与项目中间并没有直接的权限关系,故组织成员不可以直接管理项目,不对项目具有直接的管理权限,所以,要想让组织成员能访问、管理您组织的中项目,您需要将该成员添加到项目成员中。具体的您可以这样做:
首先点击您的组织中的那个项目,如图:
然后点击管理,如图:
点击下图所示的任意一个条目:
然后点击从组织中添加成员
你就能看到下图类似的界面:
然后选择好成员,选择好权限,点击添加用户,该用户就可以访问或管理这个组织中的项目了。
【注】:组织拥有者可以创建任意多的团队(Team)即角色,对属于组织的用户进行管理。组织拥有者就是组织中权限最高的角色。组织和用户一样可以创建项目,但是组织没有 SSH 公钥配置,也不能以组织的身份操作版本库。
码云特性
码云SVN支持
现在 码云 目前支持使用 Subversion 对仓库进行操作,以下是使用指南和注意事项。