git是一个版本控制系统,是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
我的理解就是代码管理器:
第一点你可将代码备份到git仓上;
第二点可记录的你修改记录;
第三点可回退版本信息(就是代码修改后,又不想修改了,可回退版本);
第四点可多人协调管理代码(将小组的代码汇总到一个远程仓管理)。
git四个区:Remote(远程仓)、History(本地仓)、Stage(暂存区)和Working(工作区)
Remote(远程仓):每次小组提交代码托管的地方,供组长管理代码。
History(本地仓):一个存放在本地的版本库;HEAD 是当前的开发分支(branch)。
Stage(暂存区):可以把所有的更新放在暂存区;相当于代码提交的缓存区。
Working(工作区):进行版本控制的目录和文件组成了工作空间;git初始化形成。
# 仓库与配置
$ git init # 新建仓库
$ git clone # 克隆所有代码
$ git config # 配置git
$ git config --global user.name "xxxxxx" #名称设置
$ git config --global user.email [email protected] #邮箱设置
$ git config --global --list #查看自己git的所有配置信息
$ git config --list --show-origin #查看git所有配置及其所在文件
# 文件与代码
$ git add # 将修改的文件添加到暂存区
$ git rm # 删除工作区文件,并将这次删除操作放入暂存区
$ git mv # 改名文件,并将这次改名放入暂存区
$ git commit # 将暂存区的文件提交到本地仓库
$ git commit -m 'initial project version' #快速提交,并给出说明
$ git commit --amend #提交修改
$ git clean -df #清除未跟踪的文件
$ git clean -dfx #将未进入跟踪文件的也清除
$ git cherry-pick commitId #拉取本地其他分支的提交到当前分支
# 分支
$ git branch # 查看所有本地分支
$ git branch -r # 查看所有远程分支
$ git branch -a # 查看所有本地和远程分支
$ git branch [branch-name] # 新建分支,但依然留着当前分支
$ git branch -d [branch-name] # 删除本地分支
$ git branch -dr [branch-name] # 删除远程分支
$ git checkout [branch-name] # 切换到指定分支
$ git checkout -b # 新建分支,并切换到该分支
# 查看信息
$ git tag # 查看所有tag
$ git status # 查看当前仓库下修改的文件
$ git log # 查看当前分支的版本历史
$ git log --shortstat #查看patch log
$ git log -p -3 filename #显示最近的3次提交
$ git diff # 查看暂存区与工作区的差异
# 分支
$ git branch --set-upstream-to [remote] [branch] #将本地分支与远程分支关联
$ git fetch [remote] #下载远程仓库的所有修改
$ git remote -v #查看所有远程仓库
$ git pull [remote] [branch] #下载远程仓库的修改并与本地分支合并
$ git push [remote] [branch] #上传本地分支到远程仓库
# 撤销
$ git checkout [file] # 将暂存区的文件恢复到工作区
$ git checkout . # 将暂存区的所有文件恢复到工作区
$ git checkout -- . # 清空工作区的修改(使用时要注意)
$ git reset # 将commit到本地仓库的文件撤回到工作区
$ git revert # 撤销分支上指定的commit
$ git reset --hard HEAD~n # 回退到n个版本
$ git reset --hard FETCH_HEAD #复位到没有修改的分支代码
Android 调试桥 (adb) 是一种功能多样的命令行工具。
它包含三个组件:客户端、守护程序 (adbd)和服务器 (adb server)。
客户端:主要用于发送命令,adb client在开发机器上运行,你可以通过发出 adb 命令从命令行终端调用客户端,它主要的工作是:解析push、shell、install等命令的参数,做必要预处理,然后转移为指令或数据,发送给adb server。
守护程序 (adbd):是运行在Android设备(真机/模拟器)后台的一个进程,它是由init进程启动的,并且系统一开机就已经启动,它的主要作用是处理来自 adb server的命令行请求,然后获取对应Android设备的信息,再将结果返回给adb server。
服务器 (adb server):是运行在PC上的一个后台进程。
它有两个作用:(1)检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止;
(2)将adb client的请求通过usb或者tcp的方式发送到对应的adbd上。
通信流程
#查看信息
$ adb start-server #开启adb服务
$ adb kill-server #停止服务
$ adb devices #查看设备信息
$ adb version #查看adb版本
$ adb help #adb帮助文档
$ adb get-state #查看设备状态 device(正常连接),offline(连接异常),unknown(没有连接)
$ adb get-devpath #获取设备路径
#常用命令
$ adb shutdown #设备关机
$ adb reboot #设备重启
$ adb root #获取root权限
$ adb remount #获取读写权限
$ adb unroot #取消root权限
$ adb connect 192.168.3.142:5555 #远程连接即无线调试 必须在同一个网关下
$ adb disconnect 192.168.3.142:5555 #断开链接
$ adb install packsge(包路径) #安装,但不覆盖
$ adb install -r packages(包路径) #保留数据及缓存文件安装新包(覆盖安装)
$ adb shell pm install /scard/Download #安装在手机上的apk
$ adb install E:/aa.apk #安装在电脑上的apk
$ adb push C:\Users\Administrator\Desktop\1.gif /sdcard/ #push 电脑文件拉向手机
$ adb pull /sdcard/1.gif C:\Users\Administrator\Desktop\ #pull 手机文件拉向电脑
$ adb shell "pm list packages | grep ls" #查找ls软件包
$ adb uninstall com.ls #卸载ls的APP
#间接操作
$ adb shell screencap /sdcard/1.png #当前窗口截屏保存到手机
$ adb exec-out screencap -p > 1.png #截图保存到电脑
$ adb shell screenrecord > 1.mp4 #屏幕录像,Ctrl+c停止录制
#adb查看应用
$ adb shell pm list packages #所有应用
$ adb shell pm list packages -s #系统应用
$ adb shell pm list packages -3 #三方应用
$ adb shell pm list packages | findstr setting #过滤应用 这个find
$ adb shell pm clear #清除应用数据和缓存
#连接方式
$ adb tcpip 5555 #设置监听TCP/IP的端口(端口号5555)
$ adb connect 192.168.1.199 (Android设备IP地址) #无线连接手机
$ adb usb #使用回usb调试 (有线连接)
#日志
$ adb logcat#查看日志
$ adb logcat -v time #打印详情日志,会记录当前的所有操作行为以及产生的结果,默认持续监听,按下Ctrl+c即可结束
$ adb logcat -v time > D:\log.txt #保存日志到电脑
$ adb logcat -f /sdcard/1.txt #保存日志到手机
$ adb logcat | findstr com.android.bluetooth #保存指定包名的日志
$ adb logcat -c #清除之前的日志输出
$ adb logcat | findstr ActivityManager #查看当前正在运行的Activity
$ adb logcat | findstr Displayed #查看当前正在运行的Activity
$ adb bugreport #查看bug报告
$ adb logcat -b radio #无线通讯的日志
$ adb shell dmesg #内核日志
$ adb shell service list #查看后台services信息