两个多月过去了,我们可以大声的告诉大家,码云目前已经支持 Git Wire Protocol。 码云的 Git SSH 服务器并不是 OpenSSH,而是基于 libssh 开发的一个服务,叫 Basalt Sshd。
代码审查有奖调查:请在评论中回答如下两个问题:
问题1
如果从 0 ~ 10 表示代码审查的重要性,那么你认为代码审查重要性得分是多少呢?
问题2
如果做代码审查时,你一般会关注哪些方面的问题?
参与方法
请直接在评论中提交你的答案,答案格式如下:
问题1: x
问题2: 1. xxxxxx, 2. xxxxxx, 3. xxxxxx
评选规则
评论内容与本主题相匹配,符合以上参与方法中的内容格式。
有奖调查时间:9月4日 ~ 9月7日
我们将从参与调查的答案中选择 3 个点赞数量最多的评论+随机抽取两个评论(共5人)赠予码云宇宙最大耍酷无敌桌布大鼠标垫一张(不包含鼠标垫上的笔记本电脑、马克杯以及红薯绿植)。
------- 广告分割线 --------
团队协作开发中,无规矩不成方圆。代码审查是你避免被猪队友坑死的最有效方法。可是代码审查怎么做,审查些什么方面的内容,这是决定代码审查工作是否成功最重要的因素。
在功能和业务方面我们帮不了你什么,但是码云企业版刚刚推出了 Pull Requests 的自动质量检查,开发人员提交了代码合并后,系统将自动分析出代码中存在的各种类型问题:包括代码规范、严重的 Bug 等等。
下图展示了某个项目提交完在合并之前的一个审查界面:
在这个 login.js 中共发现了 16 个不同的问题,这些问题给代码合并审查人员提供了非常有效直观的数据,来决定是否进行代码的合并操作。大大的节省了繁重的代码审查工作。
目前该服务只提供给码云企业版的客户使用。
欢迎体验码云企业版 https://gitee.com/enterprises
开学季在即,给大家奉上最近一周码云企业版的改进内容,包括三项:
任务状态自定义操作指令 —— 可在 commit 代码时通过指令来切换任务状态
企业全局 WebHook 管理
详细直观的仓库访问日志
任务状态自定义操作指令
码云企业版任务管理再次增强,在上次推出了自定义任务类型和状态之后,我们又在其基础上增加了状态自定义指令的功能。这样我们在提交代码填写 commit 信息的时候,就可以利用这个指令来切换任务的状态。例如我们可以在代码提交的时候通过在 commit 信息里的 close 指令将某个任务设置为“已完成”状态。
不需要再单独进入任务管理界面去设置状态,深度和代码整合 —— 省事!
企业全局 WebHook 管理
此外,我们在企业管理里增加了全局的 WebHook 的管理,不再需要一个一个项目去单独设置 —— 方便!
仓库访问日志
最后一点很重要,企业的项目很担心被非法使用,全新的项目操作日志可以让你知晓什么人在什么时间通过什么 IP 地址取得了你的仓库代码。
更多码云企业版的特性请浏览 https://gitee.com/enterprises
前言
在微信小程序开发的过程中,代码版本管理往往需要使用第三方工具进行管理。虽然微信Web开发工具
提供了对Git
文件版本状态的提示,但实际的使用体验依然不尽人意。
随着微信Web开发工具
的更新,最新的内测版本已经支持Git
的直接管理,本文将就在微信Web开发工具
中使用Git
做版本管理做详细介绍。
环境准备
开发环境:Mac/Windows/Linux均可
开发工具:微信Web开发者工具Beta版本、Git
Git托管服务:码云
使用Git
服务需要在系统上先安装好Git
,相关Git
环境的安装,详见Git入门和Git的安装。
由于目前Git
管理功能的支持尚在公测阶段,故本文将使用微信Web开发者工具 Beta版本
作为示例。
访问 https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html 即可下载 微信Web开发者工具Beta版本
(下文以微信Web开发者工具
简称代替)
创建小程序项目
使用Git
版本管理,首先需要有个git的仓库。打开微信Web开发者工具
,新建/打开小程序的项目。此处以新建项目为例,假设项目名为HelloGitee
,填写好相应路径和appid
,选择建立普通快速启动模板
,确认并新建项目。
创建完成后,得到了初始化后的项目。
创建远程仓库
在 https://gitee.com 上登录自己的码云账号,在右上角新建按钮选择「新建项目」。填写相应的项目仓库信息。
此处我们选择使用公开的仓库,命名路径为「HelloGitee」,开发语言选择「JavaScript」。确认后点击「创建」按钮初始化远程仓库。
创建并初始化完远程仓库后,我们得到了一个空白仓库如下图。项目的仓库地址是:https://gitee.com/normalcoder/HelloGitee.git
接下去我们将初始化本地的Git
仓库。
初始化本地仓库
在微信Web开发者工具
中点击面板上的「版本管理」按钮,将弹出开发者工具中的版本管理面板。
由于是新建项目,并没有初始化过Git
仓库,所以项目会提示初始化Git
仓库,点击「初始化 Git 仓库」,点击「确认」,完成本地仓库的初始化。
这一步骤相当于执行「git init」命令。
初始化完成后,我们可以看到本地的仓库和当前的Git状态。下图为微信Web开发者工具
初始化后的版本控制面板。
配置仓库信息
初始化完成后,依次点击「工作空间」->「设置」->「通用」->「编辑」,编辑在Git
中使用的用户名和邮箱。这一步相当于git config
命令中的配置操作。
$ git config --global user.name "用户名" $ git config --global user.email "邮箱"
需要注意的是:此处配置的邮箱名需要和 码云 https://gitee.com 上的邮箱保持一致,才能保证提交后能统计到Git的提交贡献信息。
切换到仓库设置的「远程」选项卡,这时候会发现提示「未找到远程仓库信息」,点击「添加」,将前面创建的远程仓库地址填进去,仓库名称此处命名为「master」,可自行命名。
添加完成后即可看到项目中的远程分支信息。
推送代码到远程仓库
点击操作面板上的「推送按钮」,在弹出窗口选择「推送到新的远程仓库分支」,名称填写「master」,表示推送到远程仓库的master
分支,然后点击「确定」。
推送完成后,我们可以顺利的看到「远程仓库」下出现了分支信息。访问码云
上的仓库,也能看到推送过去的信息。此时我们已经完成了代码从本地仓库到远程仓库到推送。
注意事项 和 身份授权设置
在推送的时候如果遇到了提示推送失败,需要检查用户授权,表示可能微信Web开发者工具
并没有读取到本地用户的ssh授权配置,需要在开发工具中设置用户的授权信息。
初始化完成后,依次点击「工作空间」->「设置」->「网路与认证」->「认证方式」,可以选择远程仓库的认证方式,默认为「自动」。
选择「输入用户名和密码」,在下方输入码云的账号和密码后,再次执行推送操作即可。
修改并提交代码
接下来我们来修改我们的项目代码。
点击开发工具面板的「版本管理」按钮,关闭「版本管理」面板,打开「pages/index/index.wxml」,修改其中内容「获取头像昵称」为「我的第一次修改提交」,保存。
再次切换到「版本管理」面板,可以看到当前本地分支有一个文件等待提交,选中并勾选文件,可以查看当前文件内发生的改动。
在下方提交框填写提交的备注信息,点击「提交」,将代码提交到本地仓库主干分支上。提交后,可以在本地仓库分支上查看提交记录。
接下去我们再次将代码从本地分支推送到远程仓库。点击操作面板上的「推送按钮」,在弹出窗口选择「推送到一下远程仓库分支」,选择一存在的远程master
仓库的master
分支,然后点击「确定」。
推送完成后,即可在码云对应的仓库主页看到提交的代码变更。
总结
在上面的操作中,我们通过微信Web开发者工具
的版本管理功能,对小程序的代码进行了版本的管理控制,并提交到了远程的Git仓库中。
在实际的项目开发中,我们还可以充分利用Git
在版本管理和协作上的特性,灵活的和他人进行协作,进而规范代码管理,更高效的进行协作开发。
Git 有一个很可怕的特性,就是 -f 参数 —— 强制推送,强行用本地仓库覆盖远端仓库。导致的后果就是文件可能被老的内容给覆盖掉,仓库的历史提交记录丢失等等。
进行强制推送一般是出现在仓库版本冲突的情况下,在团队协同开发中,很多开发者为了省事,直接不负责任的使用 -f 推送,悲剧就这样发生了。
正常的流程就是想办法解决冲突,再行推送。
可是谁身边又没有几个猪队友呢?
----- 以下是广告时间 -----
我们刚为码云企业版客户上线了限制仓库强制推送的功能,从仓库的管理页面中,可以选择“禁止强制推送”。
一旦禁用了强制推送后,如果开发者在推送冲突时使用 -f 参数,就会报如下错误:
denying non-fast-forward refs/heads/master (you should pull first)
该功能目前只对企业客户开放、默认不启用,需要手工开启。
当然我们更建议大家使用 fork + pull requests 进行协作开发,或者设置主分支只读,然后通过 pull requests 进行代码合并。
即刻前往体验码云企业版 https://gitee.com/enterprises