12 syrchina

尚未进行身份认证

我要认证

I love China.

等级
TA的排名 4k+

使用git rebase合并多次commit

1. 背景一个repo通常是由一个team中的多个人共同维护,如果需要增加新feature,那么就是一个feature分支了。由于开发中各种修改,本feature分支多次commit。最后提交master后,会看到乱七八糟的所有增量修改历史。其实对别人来说,我们的改动应该就是增加或者删除,给别人看开发过程的增量反而太乱。于是我们可以将feature分支的提交合并后然后再merge到主干这样看起来就清爽多了。记得知乎上有个帖子提问为啥vue的作者尤大大在开发vue的时候,提交历史能做到如此清爽。Git

2020-09-23 17:23:27

高效生成1万个不重复的随机数

#include <stdio.h>#include <stdint.h>#include <stdlib.h>#include <time.h>#define DATA_LEN 10000void print(int *x){ int i; for (i=0; i<10; i++) { printf("%d ", x[i]); } printf("\n");}void mix(int *x, int len){ .

2020-08-24 11:29:50

Tmux Resurrect: 保存和恢复 tmux 工作状态

tmux是终端复用器,这个名称很费解,通俗地说,就是在一个 Terminal 窗口里,可以打开多个 shell 同时工作,切换起来会比较方便。tmux 还有很多神奇的用法,感兴趣可以深入了解。打开电脑进入 tmux,通常都会不停地创建窗口,分屏,cd,ls,花一段时间弄好自己的工作环境。tmux-resurrect就是为了免去这个过程。在你前一天关闭电脑前,保存整个的工作环境,第二天开...

2020-04-02 11:37:07

Sqlite3 简易操作

终端通过sqlite语句 简单查看db数据库先找到数据库所在文件夹cd /xx/xx/xx进入数据库(可以通过ls查看文件夹下目录)sqlite3 xx.db查看数据库中的表.tables创建一个表结构create table testTabel( ID INT PRIMARY KEY NOT NULL,DEPT CHAR(50) NOT NULL,EMP_ID ...

2020-03-04 13:51:34

Json­-C用法释疑(对象的free问题)

实际项目中发现Json-C用法不当导致的内存泄露、踩内存问题,大都是因为不清楚下面几个接口的用法。以下分析基于https://github.com/json-c/json-c( 0.12.1 release)。1. json_object_new_object生成的对象要不要释放int main(int argc, char **argv){ struct json_object*...

2020-01-06 15:26:49

linux coredump 使用

1. 查看是否开启coredump: ulimit -c2. 开启coredump: ulimit -c unlimited3. 运行编译出的程序,在同目录下生成core文件4. 查看core文件定位崩溃点:gdb ./your_execute core...

2019-12-20 17:44:53

Tmux卡死解决方法

原因是虚拟机休眠,tmux没有断开,下次再接入的时候后台还有个之前的已经不存在的连接。使用Ctrl+B+D关闭相关连接即可。

2019-12-09 09:34:51

C数组&结构体&联合体快速初始化

背景 C89标准规定初始化语句的元素以固定顺序出现,该顺序即待初始化数组或结构体元素的定义顺序。 C99标准新增指定初始化(Designated Initializer),即可按照任意顺序对数组某些元素或结构体某些成员进行选择性初始化,只需指明它们所对应的数组下标或结构体成员名。GNU C将其作为C89模式的扩展。 借助指定初始化特性,可实现数组或结构体元...

2019-12-05 20:21:46

gitlab fork了别的项目后,再同步更新

用git命令操作#用git remote查看远程主机状态git remote -v #add remote git remote add upstream git@github.com:xxx/xxx.gitgit fetch upstream #merge remotegit merge upstream/master #pushgit push...

2019-12-04 16:45:21

几种linux下自动生成Makefile的方法

GNU Autotools 依次运行如下命令: autoscan viMakefile.am//添加此文件并编辑内容 aclocal autoheader automake -a autoconf ./configure make 参考:https://blog.csdn.net/memoryjs/article/details/7860783 qdevelop 安装好...

2019-11-19 17:07:58

Vim使用问题集锦

1. ycm 报错:unicodedecodeerror 'utf-8' codec can't decode byte 0xce in position 1159: invalid continuation byte解决方法:在D:\exVim\vimfiles\bundle\tabnine-vim\python\ycm\youcompleteme.py 前面添加一行:encoding=...

2019-10-12 11:36:01

git cherry-pick

概述git cherry-pick可以理解为”挑拣”提交,它会获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上。 当我们需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用git cherry-pick了。用法git cherry-pick [<options>] <commit-ish&gt...

2019-04-29 18:58:49

LINUX命令缩写全拼

/bin = BINaries/dev = DEVices/etc = ETCetera/lib = LIBrary/proc = PROCesses/sbin = Superuser BINaries/tmp = TeMPorary/usr = Unix Shared Resources/var = VARiable ?FIFO = First In, Fir...

2019-04-11 13:01:40

应用#符的二级宏定义中整数转字符串

#include <stdio.h>int main(int argc, char *argv[]){ #define RC_PID 123 #define RC_PID_STR_(x) #x #define RC_PID_STR(x) RC_PID_STR_(x) static char rc_pair_str[] = "Num = "RC_PID_STR(RC_P...

2019-04-04 15:39:13

Git gerrit 提交代码Review 返回后修改步骤 以及git操作

gerrit review 代码,git 修改后重新提交1.git reset commit_id 返回此次提交前2. 修改完毕后,git add -u .3. git commit --amend 修改并进行comment加上changeID4.git push origin HEAD:refs/for/XXXX_branchgerrit re...

2019-03-11 13:21:49

Linux查找find命令详解

在 Linux 命令中,find用于在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名,其支持按名称查找、按正则表达式查找、按文件大小查找、按文件权限查找等多种查询方式。如果在使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。语法:find + 目标目录(路径) + <选项> + 参数常用选项列...

2019-02-22 09:22:35

keil MDK log打印编译时间的方法

DBG_LOG("compile time: %s %s\r\n", __DATE__, __TIME__); 

2018-11-14 17:07:15

git pull 覆盖本地代码

在使用Git的过程中,有些时候我们只想要git服务器中的最新版本的项目,对于本地的项目中修改不做任何理会,就需要用到Git pull的强制覆盖,具体代码如下:$ git fetch --all$ git reset --hard origin/master $ git pull1 2 3Git pull的强制覆盖本地文件在自动化部署项目中很有作用,比如用SaltStack部署w...

2018-09-29 10:56:30

git切换http和ssh

打开.git/config文件,找到连接,把http换成ssh即可,可互换。

2018-09-26 09:40:43

修改 git repo 历史提交的 author

 最近学到了 git 的一招对我来说的新技巧:修改历史提交的 author。起因是这样的,在某天提交代码的过程中,发现有几次历史提交的 author 信息不对,可能是 user.name 和 user.email 的信息被修改了,就像下面这样:其实也没有大不了,但对于像我这种有轻微强迫症的人来说,这是不可接受的。通过网上查询,综合了各种方法,最终实现了预期中的效果,如下所示:...

2018-08-30 09:47:51

查看更多

勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。