Gitee 更新日志

两个多月过去了,我们可以大声的告诉大家,码云目前已经支持 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

开学季在即,给大家奉上最近一周码云企业版的改进内容,包括三项:

  1. 任务状态自定义操作指令 —— 可在 commit 代码时通过指令来切换任务状态

  2. 企业全局 WebHook 管理

  3. 详细直观的仓库访问日志

任务状态自定义操作指令

码云企业版任务管理再次增强,在上次推出了自定义任务类型和状态之后,我们又在其基础上增加了状态自定义指令的功能。这样我们在提交代码填写 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