那些比你走得远的人,并不比你聪慧,只是每天多走了一点。坚持,是最强大的力量。

​ 在构建应用的时候, 我们经常需要对用户的一举一动进行记录, 而其中一个比较重要的操作, 就是对在线的用户进行记录。

​ 本文将介绍四种使用 Redis 对在线用户进行记录的方案, 这些方案虽然都可以对在线用户的数量进行统计, 但每个方案都有一些自己特有的操作, 并且各个方案的性能特征以及资源消耗也各有不同。

阅读全文 »

初始化版本库,并提交到远程服务器端

1
2
3
4
5
6
7
mkdir git_project
cd git_project
git init #本地初始化
touch README
git add README #添加文件
git commit -m 'first commit'
git push

1、常用的Git命令

git add–interactive交互式添加
git apply应用补丁
git am应用邮件格式补丁
git annotate同义词,等同于 git blame

阅读全文 »

前言

汇总下我在项目中高频使用的git命令及姿势。
不是入门文档,官方文档肯定比我全面,这里是结合实际业务场景输出。
使用的 Git版本:git version 2.24.0

git log

查看日志,常规操作,必备

1
2
3
4
5
6
7
8
9
# 输出概要日志,这条命令等同于
# git log --pretty=oneline --abbrev-commit
git log --oneline

# 指定最近几个提交可以带上 - + 数字
git log --oneline -5

# 提供类似 GUI 工具的 log 展示
git log --graph --date=relative --pretty=tformat:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%an %ad)%Creset'
阅读全文 »

git 删除错误提交的commit

方法:

1
2
3
git reset --hard  [commit_id]

git push origin HEAD --force

说明:

根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:

  • git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息

  • git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可

  • git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

    HEAD 最近一个提交
    HEAD^ 上一次
    [commit_id] 每次commit的SHA1值. 可以用git log 看到,也可以在页面上commit标签页里找到.

阅读全文 »

查看文件权限

1
2
$ git ls-tree HEAD
100644 blob ce71d57cfdcddcf2f8aa19fecc46ba05c85aaed1 install.sh

修改权限

1
$ git update-index --chmod=+x install.sh

提交修改

1
2
3
4
5
6
$ git commit -m "修改install.sh文件权限"
[master c26ebb5] 修改install.sh文件权限
1 file changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 install.sh

$ git push

在编写Dockerfile的时候,包含一个entrypoint配置,该配置的作用是在容器启动之前做一些初始化配置,或者一些自定义的配置等。通常是一个脚本,然后在脚本里配置相关预定义项。这篇文档就详细说一说entrypoint入口文件的编写技巧。

下面以mysql官方镜像中的entrypoint文件docker-entrypoint.sh为例,文件地址为:
docker-entrypoint.sh

set -e

你写的每个脚本都应该在文件开头加上set -e, 这句语句告诉bash如果任何语句的执行结果不是true则应该退出. 这样的好处是防止错误像滚雪球般变大导致一个致命的错误, 而这些错误本应该在之前就被处理掉. 如果要增加可读性, 可以使用set -o errexit, 它的作用与set -e相同

阅读全文 »

开发时,对于本地的项目中修改不做保存操作,可以用到git pull的强制覆盖,具体代码如下:

1
2
3
git fetch --all
git reset --hard origin/master
git pull //可以省略

git fetch 指令是下载远程仓库最新内容,不做合并
git reset 指令把HEAD指向master最新版本

gitlab-ci报500问题修复

Enter the DB console:
For Omnibus GitLab packages:

1
sudo gitlab-rails dbconsole

Reset CI/CD variables

Drop the table:

1
2
DELETE FROM ci_group_variables;
DELETE FROM ci_variables;
阅读全文 »

一、CentOS7版本对防火墙进行加强,不再使用原来的iptables,启用firewalld

1.firewalld的基本使用
1
2
3
4
启动:  `systemctl start firewalld`
查状态:`systemctl status firewalld `
停止: `systemctl disable firewalld`
禁用: `systemctl stop firewalld`
阅读全文 »