LinuxLinux学习之路嵌入式 Linux C ARM

Linux嵌入式开发日常技术总结(1)

2020-11-18  本文已影响0人  QuietHeart

这里主要介绍嵌入式开发中常用的技术。

代码管理

git

代码结构样例

$ tree -a -L 2
.
├── .git
│   ├── branches
│   ├── COMMIT_EDITMSG
│   ├── config
│   ├── description
│   ├── FETCH_HEAD
│   ├── HEAD
│   ├── hooks
│   ├── index
│   ├── info
│   ├── logs
│   ├── objects
│   ├── ORIG_HEAD
│   ├── packed-refs
│   └── refs
└── release
    └── apollo

9 directories, 8 files

Git工作流程大致如下:

代码清理(reset&clean)

清除未提交的本地工作

$git reset --hard
$git clean -xdf

$rm -rf *
$ls -a
.git
$git reset --hard

关于 git reset

This form resets the current branch head to <commit> and possibly updates the index (resetting it to the tree of <commit>) and the working tree

提交与拉取、推送(commit,pull&push)

$git pull
$git pull --rebase

$git commit -a -m 'xxx'
$git add/rm
$git commit -m 'xxx'
$git commit --amend

$git push origin HEAD:refs/for/2K18_UI_FFC_tpv
$git push origin HEAD:refs/for/2K18_UI_FFC_tpv%r=jerome.wang@tpv-tech.com,r=kiko.han@tpv-tech.com

分支与合并(branch,merge,checkout)

相关命令如下:

$git branch [-l]
$git branch -r
$git branch -a
$git branch <name> [<start>]
$git checkout -b <name> [<start>]

$git merge <branch>
$git cherrypick <commit id>

关于期间分支的变化情况,可参考: man git rebase

others

$git checkout <file>
$git blame <file>
$git log
$git log --graph
$git log --author=<pattern>
$git status
$git format-patch <start>

repo

代码结构

$ tree -L 2 -a
.
├── android
│   └── n-base
├── apollo
│   ├── custom
│   ├── linux_core
│   ├── linux_mts
│   ├── middleware
│   ├── mtk_obj
│   ├── oss
│   ├── sys_build
│   ├── target
│   ├── third_party
│   └── tools
└── .repo
    ├── manifests
    ├── manifests.git
    ├── manifest.xml -> manifests/default.xml
    ├── project.list
    ├── project-objects
    ├── projects
    ├── repo
    └── .repo_fetchtimes.json

19 directories, 3 files

初始化本地代码库

初始化主要是针对manifest与repo项目

repo init
--mirror
--reference <mirrorpath>
-u <remote url>
-b <repo branch>

举例:

#创建可被其它本地repo仓库引用的缓存镜像
$repo init -u ssh://url/tpv/platform/manifest -b 2k18_mtk_msaf_kane_n_devprod --mirror

#通过引用缓存镜像缩短下载整个代码仓库的时间减少项目占用空间
$repo init -u ssh://url/xxx -b xxx --reference xxx

#普通的初始化方式
$repo init -u ssh://url/xxx -b xxx
$repo init

注意:通过 mirror 指定的镜像缓存,可以减少下载代码的时间,并减少项目占用的空间。

代码同步与清理

主要通过 repo sync 来实现

举例:

#删除工作目录(保留.repo目录)
$rm -rf && ls -ap
.repo/

#从.repo恢复工作目录(不联网下载)
$repo sync -l

#从.repo获得所有工作目录并与远端更新
$repo sync
$repo sync -j4

#从.repo获得当前工作目录并与远端更新
$repo sync .

其它

其它命令参见 repo --help

$repo forall -c "git xxx"
$repo info
上一篇下一篇

猜你喜欢

热点阅读