git一些常用命令

在做车载项目时,经常用到一些git命令,整理了一些留着自己以后备用,或者给一些需要的人,gogogo~~~

1.下载repo,执行代码拉取的命令

    repo init -u ssh://liu.jingdong@********/gradleprojects/manifest -b temp_abroad 

  • -u:指定一个URL,其连接到一个manifest仓库,比如:ssh://liu.jingdong@********/gradleprojects/manifest
  • -b:选择manifest仓库中的一个特殊分支,比如:temp_abroad 
  • -m:在manifest仓库中选择一个xml文件

2.同步代码(repo sync),这个需要在执行了repo init 命令后,执行如下命令同步代码

  • repo sync -c //更新全部项目,只同步指定的远程分支
  • repo sync -j4 //指定4个线程去更新
  • repo sync .  //更新当前文件夹,注意这里是有一个点的哈

3.本地无分支,新建分支并切换,依次执行如下代码

  • git fetch aosp branch1:branch2   不要remotes/aosp/直接分支名,branch1为远程服务器上的分支,新建branch2并将branch1更新到branch2中
  • git checkout branch2 新建后切换到branch2

4.本地有分支,更新远程代码库,然后更新代码,依次执行如下代码

  • git fetch --all  更新远程代码库
  • git reset --hard aosp/branch1   把branch1更新最新代码

     git pull -----这个也可以更新代码到本地,但是发现有时候会更新不下来,原因还不知道,上面可以保证更新到最新代码。

5.提交本地修改的代码,依次执行如下代码

  • git status 查看所修改的文件和状态
  • git diff 查看修改的代码
  • git add .  注意这里是有一个点的,点.是所有都提上去  加路径是单个的文件
  • git commit -m "[NACA-ID:none][screencap_neu][add error-tolerant][1/1][OK]"    screencap_neu项目名字如image,add error-tolerant为描述
  • git push aosp HEAD:refs/for/temp_abroad 将代码提交到temp_abroad分支的远程代码库
  • git reset --soft HEAD~1  提交回滚,代码不变,会退到某个未提交的状态(撤销提交)1表示回退1个版本,2表示回退2个版本

另:如果提交到Gerrit上,需要互相依赖的可以在Reply中使用depends-on:16760

如果提交后,又想提交一笔代码并合并到上一笔代码里面,可以依次执行如下代码:

  • git add .
  • git commit --amend //会出现vim的可视xml文件,可以:x退出即可
  • git push aosp HEAD:refs/for/e01_trunk

这样就可以将本笔代码合并到上一笔代码中一起提交了。

查看分支

  • git branch -v //查看本地分支
  • git branch -vv //查看本地分支,本地分支和远程的分支会对应显示
  • git branch --all //查看所有分支

6.通过vim在linux上查看代码

在第5条中git commit --amend //会出现vim的可视xml文件,也可以通过vim主动去查看

  • vim src/main/java/com/CarFragmentUI.java //查看src/main/java/com目录下的CarFragmentUI.java文件

输入:wq!, 强制保存退出
w write 写入
q quit 退出
! 强制
或者:x 保存退出
:q 不保存退出
:q!  不保存强制退出

cat filename也可以一次显示整个文件,但是他不可以编辑。

7.通过命令安装APK,依次执行如下代码

安装到系统里面,即system里面

  • mount -o rw,remount /system   //给system权限,在linux中对只有Read-only filesystem的文件改为可写、可读权限
  • cd system/app  //进入系统目录
  • rm -rf image.*  //删除APK image  带*是删除以image为开头的文件都删除掉
  • cp /udisk/single/APK/image.apk .  //复制apk,/udisk/single为U盘根目录即apk所在目录,点.是复制到当前目录,也可以指定目录
  • chmod 777 image.apk   //给777权限
  • sync //同步
  • reboot  //重启

安装到application中

  • pm install /udisk/single/APK/Setting.apk  安装/udisk/single/APK/目录中的Setting.apk
  • pm uninstall com.neusoft.mirage.image  卸载 com.neusoft.mirage.image为gradle里面的包名

8.查看log时用到的命令

  • logcat |grep -e "AAA"  //输出AAA的关键字log

-i 是不区分大小写
logcat -c  清理log
logcat -s [APK名字]  Image Video Media
logcat *:e //查看异常的
logcat |grep -n --color=auto -e "CarFragment"
logcat -v time |grep -e "dong" 加时间戳
-i:忽略大小写
-n: 输出行号
-v: 反向选择
--color = auto :给关键部分添加颜色

adb logcat > C:\Users\twl\Desktop\log\logcat.log 将日志信息输出到已经存在的指定文件中
top -d 1 -m 5 //查看内存

date -s "20200527.114700"  //修改时间为2020.5.27 11:47:00

9.adb查看/修改android系统属性命令、settings数据库

(1)settings数据库操作

获取值

adb shell settings get system [key]

adb shell settings get global [key]

adb shell settings get secure [key]

设置值

adb shell settings put system [key] [value]

adb shell settings put global [key] [value]

adb shell settings put secure [key] [value]

(2)系统属性命令

adb shell getprop [key]    ——这个key就是需要获取的系统属性名字

实例:adb shell getprop persist.test

adb shell setprop [key] [value]  ——[key]为需要设定的系统属性名字,[value]为设定的值。

实例:adb shell setprop persist.test true

10.杂项

(1)使用gitk工具可以将git可视化,查看之前提交得一下记录啥得。

(2)grep -rinw xxxxx   查找命令,一般使用grep -rin xxxx就可以了,xxx是你要搜索的关键字

-r 文件夹 递归   -i 忽略大小写    -n 记录行号    -w 全词匹配

grep -wirn "xxx.canversion_info" --exclude-dir=out * --include=*.{c,cpp,h,hpp}

也可以用上面这个,意思是,查找xxx.canversion_info关键字,去除out文件夹,只查找后缀为c,cpp,h,hpp得文件

如果你知道文件名字,可以直接  find -name xxx.java,需要带后缀的文件全名

(3)查看进程命令

adb shell ps|findstr com.android.xxx

或者adb shell ps|grep com.android.xxx

以上都是我在做项目时经常使用的命令,总结一下以防以后忘记,毕竟年纪大了。

(4)通过以下方式强制进入Android
车机上电后,一直按下enter进入uboot模式,输入如下命令强制跑一下android系统:
env set bootmode android
run bootcmd

(5)根据关键字查找查找包名

pm list package |grep xxxx     查找所有带xxxx关键字的包名

会出现如下,把带关键字的包名都找出来:

package:com.android.providers.xxxx
package:com.mediatek.fwk.xxxx
package:com.malaysia.xxxx

pm path com.malaysia.xxxx   查找com.malaysia.xxxx这个包名所在的路径

(6)停止kernel无用log

echo 0 >/proc/sys/kernel/printk

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值