空达博客

一些并不十分厉害的技术文章和生活感悟的随性分享。

来自于 Coding.net 使用命令行初始化仓库的提示;

1.创建仓库

如果您还没有任何代码, 可以通过命令行工具创建一个全新的 Git 仓库并初始化到本项目仓库中。

1
2
3
4
5
6
git clone [gitURL]
cd [FloderURL]
echo "# [Something]" >> README.md
git add README.md
git commit -m "first commit"
git push -u origin master

以上。

2.推送仓库

1
2
git remote add origin [gitURL]
git push -u origin master

其中:

  • gitURL 即 [[Git]] 的在线仓库地址;
  • FloderURL 即 [[Git]] 在本地的文件夹位置;
  • Something 即 Readme.md 文件中的标题;

以上。

本文主要说明 Gitcherry-pick 功能。

应用场景

如果你的应用已经发布了一个版本2.0, 代码分支叫 release-2.0 , 现在正在开发3.0, 代码的分支叫 dev-3.0 。有一天产品说, 要把正在开发的某个特性提前上线, 也就是说要把 dev-3.0 分支上的某些更改移到 release-2.0 的版本上, 那么怎么办呢?

cherry-pick 上场了, cherry-pick 会重演某些 commit , 即把某些 commit 的更改重新执行一遍。

解决方案

那么上述问题的解决方案如下:

  • 首先,切换到dev-3.0分支,敲 git log 命令,查找需要合并的 commit 记录,比如 commitID:20c2f506d789bb9f041050dc2c1e954fa3fb6910

  • 然后,切换到 release-2.0 分支,使用 git cherry-pick 20c2f506d789bb9f041050dc2c1e954fa3fb6910 命令,就把该条 commit 记录合并到了 release-2.0 分支,这只是在本地合并到了 release-2.0 分支;

  • 最后git push 提交到 release-2.0 远程,至此,就把dev-3.0分支的这条 commit 所涉及的更改合并到了 release-2.0 分支。

另外,多个 commit-hash 使用空格分割, commit-hash 最好按提交时间先后排列, 即最先提交的commit放在前面。

例如:

1
2
3
4
git cherry-pick  
20c2f506d789bb9f041050dc2c1e954fa3fb6910
2633961a16b0dda7b767b9264662223a2874dfa9
5d5929eafd1b03fd4e7b6aa15a6c571fbcb3ceb4

以上。

补充说明

cherry-pick 不仅可以用在不同分支之间, 还可以用在同一个分支上。
不同分支的用法如上所述. 同一分支用法也是一样的, 同一分支使用情形:
比如说你在某一个向某个分支中添加了一个功能, 后来处于某种原因把它给删除了, 然而后来某一天你又要添加上这个功能了, 这时候就可以使用cherry-pick把添加那个功能的commit, 再重演一遍。

灵活使用各种公共的静态资源库,可以加速你的网站运行速度。

常用库

当然,用别人的 CDN 都是不保险的,所以建议在 CDN 读取失败的时候从自己服务器提供;

如下:

1
2
3
4
5
6
7
8
<script src="//cdn.staticfile.org/jquery/1.8.3/jquery.min.js"></script>
<script>
if (!window.jQuery) {
var script = document.createElement('script');
script.src = "/js/jquery.min.js";
document.body.appendChild(script);
}
</script>

以上。

引用说明

部分引用于 此文

Android 原生计步功能的实现,记录当日步数(仿微信运动),不需要后台 service。

1.概述

通过调用 Android4.4 以上系统自带的计步传感器 Sensor.TYPE_STEP_COUNTER ,实现记录当日步数的逻辑,不需要后台 service ,因自带计步传感器记录的是开机以来所有的步数,所以需要自己处理跨天分割以及开关机的问题。

2.封装

封装 StepUtil 供外界调用,以下:

1
2
3
4
5
6
7
8
9
/**
* 今日步数
*
* @param context 上下文
* @return 今日步数
*/
public static int getTodayStep(Context context) {
return (int) StepSPHelper.getCurrentStep(context);
}

3.初始化调用

在项目开启的入口处进行计步功能的初始化,以下:

阅读全文 »

此文为将 Hexo 部署于自己的 VPS 服务器上的经验。

0.转载说明

作者:JackYao
链接:https://www.jianshu.com/p/a8796a963fe9
来源:简书

有删减。

1.将 Hexo 安装在本机

以下:

1
2
3
4
5
npm install hexo-cli -g #全局安装hexo脚手架工具
hexo init blog #初始化项目,命名为blog
cd blog
npm install #安装依赖库
hexo server #启动nodejs服务, 访问localhost:4000可预览

2.服务器配置

2.1登录服务器

购买服务器以后,可通过ssh登录服务器操作

1
ssh root@ipaddress -p port #ipaddress和port可从供应商处获取,默认为22号端口

2.2安装相关软件

git

1
yum install git

配置git

1
2
git config --global user.email "emial地址"
git config --global user.name "用户名"

配置git仓库(通过git hook完成自动部署)

阅读全文 »

[镜像站 RSS]

正式版本通道:

1
https://gms.magecorn.com/Zeus-Runtime.rss

Beta 版本通道(镜像更新缓慢,如需体验请使用官方通道):

1
https://gms.magecorn.com/Zeus-Runtime-Beta.rss

NuBeta 版本通道(新增,用于 2.3.0-Beta):

1
https://gms.magecorn.com/Zeus-Runtime-NuBeta.rss

[手动下载]

如果你是第一次使用 GameMaker Studio 2,或者更新出现问题,可以在这里手动下载对应版本的 Runtime,建议使用迅雷,IDM 下载以下文件。

阅读全文 »

两数之和是一道非常经典,也非常高频的面试题。

问题

给定一个整数数组nums 和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。

例子:

1
2
3
4
5
6
## 给定
nums = [2, 1, 7, 11, 15], target = 9
## 因为
nums[0] + nums[2] = 2 + 7 = 9
## 所以返回
[0, 2]

之前我们探讨了这个问题的暴力运算法和哈希表法,今天我们使用双指针法来解决它。

思路

首先排序数组;

使用leftright 两个指针;

比较 targetleft 值加 right 值的和,移动对应的指针;

双指针解法的时间复杂度取决于对应的排序算法,空间复杂度为O(n)

什么是双指针?

双指针和快速排序、冒泡排序等具体算法不同。它更接近于一种思(tào)路,一种使用两个指针互相配合来存储节点以便于运算的技巧。

双指针法适用于数组、链表等线性数据结构,常用的思路有:碰撞指针、滑动窗口、快慢指针等。

在两数之和这个case中我们使用 碰撞指针 的方式来实现,其它两种套路会在后续文章中介绍。

阅读全文 »

此文为将在 nginx 服务器上申请 ssl 证书以开启 https 服务的经验。

0.转载说明

作者:知微见珠
链接:https://www.jianshu.com/p/df3c07aa9330
来源:简书

有删减。

1.安装CertBot

为了实现网站的 HTTPS 化,需要在服务器上配置 CA 证书,Let'sEncrypt 是一个免费的 CA 证书,而且提供了 Certbot 客户端方便进行安装。

1
2
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

这里遇到过一个问题:之前设置了pip的镜像地址为阿里云,导致部分 python lib下载不下来。
解决方法:

1
2
vi .pip/pip.conf
注释掉index-url=http://mirrors.aliyun.com/pypi/simple/这一行

2.安装Nginx插件

以下

1
2
3
sudo ./path/to/certbot-auto --nginx
# 也支持apache
# sudo ./path/to/certbot-auto --apache

这里也遇到一个问题:Nginx路径未加入到到环境变量,导致 certbot 找不到 nginx
解决方法:

1
2
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
ln -s /usr/local/nginx/conf/ /etc/nginx

3.检测HTTPS是否可用

此时应该已经就可以通过 https 访问你的域名了,可以到 https://www.ssllabs.com/ssltest/analyze.html?d=你的域名 检测一下;

阅读全文 »
0%