[toc]
sqlite
sqlite 导出数据库到csv
$ sqlite3 xxx.db
sqlite> .headers on
sqlite> .mode csv
sqlite> .output data.csv
sqlite> select * from `TableName`;
sqlite> .quit
.mode 设置输出模式
* csv 逗号分隔的值
* column 左对齐的列
* html HTML 的 <table> 代码
* insert TABLE 表 SQL 插入语句
* line 每行一个值
* list 由 .separator 字符串分隔的值
* tabs 由 Tab 分隔的值
* tcl TCL 列表元素
导出完毕后输入 .output stdout 就可以恢复正常输出到控制台
sqlite – 如何将查询的结果保存为CSV文件?
您必须将输出切换到csv模式并切换到文件输出。 sqlite> .mode csv sqlite> .output test.csv sqlite> select * from tbl1; sqlite> .output stdout
git
提交发现冲突时批处理冲突文件
1、进入项目目录,输入下面的命令查找所有冲突文件(注意命令最后面的 . 代表当前目录
grep -lr '<<<<<<<' .
2、处理冲突文件
# 接受文件本地更改的版本(忽略远程服务器的版本)
git checkout --ours <Conflict Files>
# 接受文件远程更改的版本(忽略本地的版本)
git checkout --theirs <Conflict Files>
3、结合前面查找冲突文件的命令,批量处理所有冲突文件
# 接受所有本地更改的文件版本
grep -lr '<<<<<<<' . | xargs git checkout --ours
# 接受所有远程更高的文件版本
grep -lr '<<<<<<<' . | xargs git checkout --theirs
git 删除之前版本库中的忽略的文件
git rm -r –cached <文件名>文件名>
git 回滚到某个历史commit并强制覆盖远端
## 首先用下面的命令回滚到某个历史Commit
git reset --hard <commit_ID>
##然后强制Push到远端
git push -f -u origin <branch>
清除本地修改
git reset --hard
克隆仓库的某个分支(例如dev分支)
git clone -b dev https://xxx.git
查看所有分支
git branch -a
切换本地仓库到某个分支
git checkout origin/dev
配置git仓库自动保存密码
git config credential.helper store
git checkout $commit_SHA1 回滚到某个commit的历史版本
例如 git checkout 271e8c50ba1acc1002601cc12643dfbdef4c7005 将回滚到这个SHA1所属commit的版本,此时HEAD为Detached HEAD, 无法commit 如果要把回滚的代码重新提交到主分支,需要创建一个临时分支,然后Pull Request Merge到原来的分支,再删除这个临时分支
$git checkout –b temp #makes a new branch from current detached HEAD
$git branch –f master temp #update master to point to the new <temp> branch
$git checkout master #Switch to master branch
$git branch –d temp #delete the <temp> branch
$git push -f origin master #push the re-established history
利用git hook当向本地仓库提交commit后触发构建任务
- 在项目的 .git/hooks 目录下新建 post-commit 文件
- 修改文件内容,例如
1 #!/bin/sh 2 WORKSPACE=/Users/chengping/Documents/Ping/codes/build 3 echo ${WORKSPACE} 4 cd ${WORKSPACE} 5 `. build.sh`
git 根据commit id创建和删除tag
创建一个Tag:
git tag -a <tag_name> <commit_id> -m "messages or comments"
# example
git tag -a v2.0.2 07a0d69 -m "Adding tag to published version 2.0.2"
Push 到服务器
git push origin <tag_name>
#example
git push origin v2.0.2
删除 Tag
git push --delete origin <tag_name>
#example
git push --delete origin v2.0.2
VSCode / C# / Unity / Firebase / Android
VS code debug on Android throgh react native
You can open developer menu in Emulator or device by adb shell input keyevent 82
C#如何用类似枚举的方式来定义类型安全的字符常量
/// <summary>
/// 事件记录自定义参数名称列表
/// </summary>
public class ParamName {
public string Value { get; set; }
private ParamName(string value) { Value = value; }
public static ParamName COIN_SOURCE_REWARDVIDEO { get { return new ParamName("ByRewardVideo"); } }
public static ParamName COIN_COIN_SOURCE_PASS_LEVEL { get { return new ParamName("ByPassLevel"); } }
public static ParamName COIN_SOURCE_PASS_CHAPTER { get { return new ParamName("ByPassChapter"); } }
public static ParamName COIN_SOURCE_DAILY_SIGNIN { get { return new ParamName("ByDailySignIn"); } }
}
Firebase 在Android logcat中输出事件记录日志方便调试
您可以在 Android Studio 调试日志中启用详细的日志记录功能,从而帮助验证 SDK 是否已正确记录事件。这包括自动和手动记录的事件。 您可以通过一系列 adb 命令启用详细的日志记录功能:
adb shell setprop log.tag.FA VERBOSE
adb shell setprop log.tag.FA-SVC VERBOSE
adb logcat -v time -s FA FA-SVC
此命令可在 Android Studio logcat 中显示您的事件,帮助您立即验证所发送的事件。
Firebase 在Android和iOS设备上启用“调试模式”以便看到即时的调试数据
Android 要在 Android 模拟设备上启用 Analytics(分析)“调试”模式,请执行以下命令行:
adb shell setprop debug.firebase.analytics.app com.rolling.crossword.puzzle.game
“调试”模式将保持启用状态,直至您通过执行以下命令行明确停用“调试”模式:
adb shell setprop debug.firebase.analytics.app .none.
iOS 要在开发设备上启用 Analytics(分析)“调试”模式,请在 Xcode 中指定以下命令行参数: -FIRDebugEnabled “调试”模式将保持启用状态,直至您通过指定以下命令行参数明确停用“调试”模式: -FIRDebugDisabled
Android 安装bundle包导出的apks
java -jar bundletool.jar install-apks --apks=/MyApp/my_app.apks
https://developer.android.com/studio/command-line/bundletool
Unity 使用Script Define Symbols 实现条件编译
在Unity3D Player Settings 中可以定义 Script Define Symbols,其中定义的标签可以在代码中像Unity预定义标签(比如UNITY_EDITOR)一样访问,用作编译条件。可以用这种方式来更安全地控制是否启用调试模式: 比如,可以定义一个标签 DEV_DEBUG,标记是否开启调试模式,然后在代码中使用这个标签判断是否要开启日志输出
#if DEV_DEBUG
public const bool logEnabled = true;
#else
public const bool logEnabled = false;
#endif
这样,程序员可以在自己的Unity3D Player Settings中设置 Script Define Symbols 中,增加标签 DEV_DEBUG,那么在本地编译时就可以打开日志开关,而在编译服务器的编译脚本中不设置这个标签,则正式出包时就不会打开日志开关。
Shell / Bash
Shell 脚本获取当前日期时间
time=$(date "+%Y%m%d-%H%M%S")
time=$(date "+%Y-%m-%d %H:%M:%S")
echo "${time}"
上面两行简单的代码就是shell获取当前时间并按照自己想要的格式输出。 需要注意几点 date后面有一个空格,否则无法识别命令,shell对空格还是很严格的。 Y显示4位年份,如:2018;y显示2位年份,如:18。m表示月份;M表示分钟。d表示天,而D则表示当前日期,如:1/18/18(也就是2018.1.18)。H表示小时,而h显示月份(有点懵逼)。s显示当前秒钟,单位为毫秒;S显示当前秒钟,单位为秒。
sudo chmod+x post-commit
查看证书信息
keytool -printcert -file ./META-INF/CERT.RSA