常用命令手册

背景

记录一些开发中可能使用到的命令,用于自己查阅。

内容

ADB Shell

冷启动:
adb shell am start -W com.example.calendar/.MainActivity >> d:\time.txt
退到后台:
adb shell input keyevent 3
热启动:
adb shell am start -W com.example.calendar/.MainActivity >> d:\time.txt
杀掉进程:
adb shell am force-stop com.example.calendar

开启界面坐标:
adb shell settings put system pointer_location 0
关闭界面坐标:
adb shell setprop debug.hwui.overdraw show

查找Log:
adb shell logcat | findstr “picher”

运行Espresso:
adb shell am instrument -w -r -e debug false -e class com.patac.hmi.calendar.MainActivityTest#testLaunchAndSwipe com.patac.hmi.calendar.test/android.support.test.runner.AndroidJUnitRunner

GPU呈现模式为条形图:
adb shell setprop debug.hwui.profile visual_bars
在adb shell dumpsys gfxinfo中
adb shell setprop debug.hwui.profile true

无序压测:
adb shell
monkey -p com.example.calendar --throttle 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error --monitor-native-crashes -v 1000 2> /mnt/sdcard/monkey.txt

开辅助功能
adb shell settings get secure enabled_accessibility_services
adb shell settings put secure enabled_accessibility_services com.alipay.hulu/com.alipay.hulu.shared.event.accessibility.AccessibilityServiceImpl
adb shell settings put secure accessibility_enabled 1

获取已安装应用包名列表:
adb shell pm list packages

启动目标
adb shell am start

lsof 获取系统占用文件进程信息
strace 追踪进程的系统调用

拨打电话
adb shell am start -a android.intent.action.CALL tel:8888888888888
挂电话
adb shell input keyevent 6

Git

1、配置用户信息
git config --global user.name “Your Name”
git config --global user.email “email@example.com”
git config --global --list //查看配置

2、创建版本库
mkdir learngit
cd learngit
git init
git init --bare sample.git //创建空库,一般是在远程库做

3、添加文件,告诉git这些文件要由你来管理啦(一般在新增或修改文件后要添加,既将文件放入待提交区)
git add 要添加的文件名

4、删除文件(已经物理删除文件,需要从待提交区中删除)
git rm 要删除的文件名
git rm -r --cached . 删除本地缓存

4、提交文件到版本库
git commit -m “描述信息” // 会提交已经add或rm(待提交区)的文件到版本库
git commit -m “描述信息” 要添加的文件名 // 直接提交指定的文件到版本库(不一定需要add或rm既可以不通过待提交区直接提交)
git commit --amend 重新提交

5、查看当前库的状态(是否有文件被修改,同时可以看到哪些修改过的文件已经添加到了待提交区(add或rm的那些操作))
git status

6、查看某个文件具体修改了什么(只能看到那些未添加到待提交区的文件的差异,如果已经添加到了待提交区,则不存在差异)
git diff 文件名 //比较的是工作区和暂存区的差别
git diff HEAD – 文件名 //查看工作区的文件与指定版本库中的文件的差异
git diff 分支名 //查看当前分支与指定分支的文件的差异
git diff --cached //比较的是暂存区和版本库的差别
git diff HEAD //可以查看工作区和版本库的差别
git diff origin/分支名 //与远程分支比较(先fetch过)
git diff --staged //显示暂存区域中的文件与当前的最新版本之间的差异

7、查看版本日志
git log
git log --pretty=oneline //将每一个版本信息显示成一行
git log --graph --pretty=oneline --abbrev-commit //能够看到分支合并的日志
git log -p master… origin/master //比较本地的仓库和远程参考的区别(先fetch过)
git show --stat 版本id

8、回退版本(HEAD表示当前版本;HEAD表示上一个版本;HEAD^表示上上一个版本; HEAD~100表示上100个版本)
git reset --hard HEAD^ //回退到上一版本
git reset --hard 版本id //回退到指定的版本id的版本
git reset --hard origin/master //保持与远程分支一样的版本
git revert 版本id //回退到指定的版本id的版本(但其实是一个新的版本)

撤回远程分支参考: https://www.cnblogs.com/qlqwjy/p/8179684.html

9、查看每一次命令(常用来看版本id)
git reflog

10、撤销修改
git checkout – 文件名 //回退工作区(不理会待提交区和版本库)的内容,既将文件回退到最近一次add或commit之前
git reset HEAD 文件名 //清空待提交区的文件(不会影响到工作区)
git reset --mixed 版本id //撤消到指定的版本id的版本(既撤消到工作区)
git reset --soft 版本id //撤消到指定的版本id的版本(既撤消到待提交区)

11、将本地库与远程库相关联(前提是远程库是空库)
git remote add origin git@github.com:whlt20090509/learngit.git // origin 是远程库的名称(源库)
git push -u origin master // 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令

12、克隆远程库
git clone git@github.com:whlt20090509/learngit.git
git clone git@server:/srv/sample.git

13、查看分支
git branch
git branch -r //查看远程分支
git branch -a //查看所有分支
git branch -vv //查看分支与远程分支是否关联

14、创建分支
git branch 分支名称
git branch 分支名称 远程库名称/远程分支名称 //创建分支并与远程分支关联
git branch --set-upstream 分支名称 远程库名称/远程分支名称 //将现有分支与远程分支关联

15、切换分支
git checkout 分支名称
git checkout -b myRelease origin/Release //切换远程分支。作用是checkout远程的Release分支,在本地起名为myRelease分支,并切换到本地的myRelase分支

16、合并分支
git merge 分支名称 // 将指定名称的分支合并到当前分支上
git merge --no-ff -m “一些描述” 分支名称 // 强制不使用Fast forward方式来合并分支,这样的好处是在log里可以看到合并分支的信息
git checkout --patch B_branch f.txt //合并B分支上的f.txt文件到当前分支
git checkout B_branch f.txt //复制B分支上的f.txt文件到当前分支

17、删除分支
git branch -d 分支名称
git branch -D 分支名称 //强制删除分支(对于未合并的分支需要删除时)
git branch -r -D origin/BranchName //删除本地的远程分支
git push origin -d BranchName //远程删除git服务器上的分支

17.1、建立本地分支与远程分支的映射关系
git branch -u origin/分支名

git branch --set-upstream-to origin/分支名

17.2、撤销本地分支与远程分支的映射关系
git branch --unset-upstream

18、保留现场
git stash

19、查看现场
git stash list

19、还原现场
git stash apply // 还原的同时不会将现场删除
git stash pop // 还原的同时会将现场删除

19、删除现场
git stash drop <stash@{id}>

20、查看远程仓库的名称
git remote -v

21、推送本地分支代码到远程库
git push origin 分支名称
git push --set-upstream origin 分支名称 //并将本地与服务器关联
git push -f //强制推送(一般用在回退远程版本)

22、从远程库拉取最新代码
git pull

23、打标签
git tag 标签名称 //默认把最新的commit打标签
git tag 标签名称 commit_id //指定commit id对其打标签
git tag -a 标签名称 -m “标签描述…”

24、查看所有标签
git tag
git ls-remote //查看远程分支及标签

25、查看标签信息
git show 标签名称

26、删除标签
git tag -d 标签名称

27、推送标签到远程
git push 远程库名称 标签名称
git push origin --tags //推送全部标签

28、删除远程标签
a:先删除本地标签
b:再删除远程标签,命令:git push 远程库名称 :refs/tags/标签名称

29、让git高亮显示
git config --global color.ui true

30、忽略特殊文件
在工作区创建.gitignore文件,将要忽略的文件写在其中(支持正则),如:
Windows:
Thumbs.db
ehthumbs.db
Desktop.ini

Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build

My configurations:
db.ini
deploy_key_rsa

31、把被忽略的文件添加进git
git add -f App.class //-f 表示强制添加

32、生成key
ssh-keygen -t rsa -C “youremail@example.com”
把所有公钥导入到/home/git/.ssh/authorized_keys文件里

33、将某个分支的某个文件覆盖到当前分支来
git checkout 分支名称 – 文件

34、将远程文件拉下来,但不合并,仅做为独立分支
git fetch //会把所有分支都取下来
git fetch 远程库名称 分支名称 //只取回某个分支
git fetch origin master:temp //从远程的origin仓库的master分支下载到本地并新建一个分支temp

小结

上一篇:App如何实现就近接入?如何改善调度不准问题?


下一篇:Java学习实战教程之CKEditor+CKFinder整合项目开发文本编辑器功能