使用repo和git进行工程管理
以前一直用cvs/svn,现在转用repo和git做工程管理,一直迷糊当中,今天请同事科普了一下,以下纯粹是从一个工程师简单使用的角度,配合自己的见解总结而成,可能很多地方不准确,甚至不正确,以后如有发现,我会自己再来更新,当然,欢迎指正。
repo是google用python写的用来管理git的脚本。
1、如何从服务器取一份代码到本地
a、repo init -u URL -b branch配置参数,指明具体服务器及分支
repo init 表示在当前目录下安装repository,会在当前目录创建一个.repo目录
-u URL 表示从这个URL(服务器地址)中取得repository的manifest文件
-b branch表示选择服务器的branch分支,没有-b这个参数,默认为master这个branch
关于branch的个人见解:git支持多分支管理,git对文件的管理具体体现就是文件夹下的一个.git目录,每个分支对应.git目录下的一个管理文件。
我们服务器上的用法是:repo init -u git://10.0.12.140/vmworks/platform/manifest.git -b develop
b、repo sync 从服务器取指定分支的代码,相当于git clone
2、建立本地分支
a、 repo start XXX(分支名) --all 建立本地分支。直观上,运行这条指令后才有了.git目录及目录下的管理文件,这样git命令才能使用。
b、使用git branch查看本地新建分支。可以使用git branch -r 查看远端服务器分支,或用git branch -a查看所有分支。
3、代码提交步骤(当本地代码和服务器代码没有冲突时)
a、使用repo status,查看具体哪个git库(project)需要提交。也就是列出需要提交代码所属.git目录的具体路径
b、cd 需要提交代码所属.git目录的具体路径。
c、git status列出了该.git目录管理的文件中,所有的修改。
d、git add +修改文件的文件 ,git add 后可接多个文件,中间只要用空格隔开就可以了。
e、git commit -m “对修改所做的注释” ,其中-m表示对代码做了修改,-a表示的是添加的文件。这个参数在使用repo status时,是会列出来的。
关于git add 和git commit的个人见解:做完这两部后,本地的.git目录下的branch文件已经做了修改
f、 git push 远端分支。
我们服务器上的用法是:git push xulei@10.0.12.140:/pub/git/vmworks/xxxHEAD:develop
g、git push太复杂,有一个简单一点的方法:
在repo start 指令后使用:
repo forall -c 'git remote add origin xulei@10.0.12.140:/pub/git/vmworks/$REPO_PROJECT.git$@'
如果在某个库中逐一添加远端,使用命令:
git remote add origin xulei@10.0.12.140:/pub/git/vmworks/common.git
这样 git push origin
4、代码提交步骤(当本地代码与服务器代码冲突时)
a、将本地代码更新到服务器最新代码
git checkout -f
git pull
b、在最新代码上做修改
c、回到以上第3步
5、git log用法
git log可以用来查看git的提交记录。git log -p(或者 git log --pathc)可以产看详细的提交内容能够。
6、/.repo/manifest.xml有各个git分支的信息
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="aosp"
fetch="git://10.0.12.140/vmworks/" />
<default revision="refs/heads/develop"
remote="aosp"
sync-j="4" />
<project path="build" name="build" >
<copyfile src="core/root.mk" dest="Makefile" />
</project>
<project path="prebuilts" name="prebuilts" />
<project path="kernel" name="common" />
<project path="external/busybox" name="external/busybox" />
<project path="external/yaffs2" name="external/yaffs2" />
<project path="external/glibc-2.17" name="external/glibc-2.17" />
<project path="external/glib-2.36.0" name="external/glib-2.36.0" />
<project path="external/utils" name="external/utils" />
<project path="external/softap" name="external/softap" />
<project path="external/qt-4.8.4" name="external/qt-4.8.4" />
<project path="projects/cardvr" name="projects/cardvr" />
<project path="projects/gst_demo" name="projects/gst_demo" />
<project path="projects/ipcamera" name="projects/ipcamera" />
<project path="projects/sofia" name="projects/sofia" />
<project path="projects/vmtool" name="projects/vmtool" />
<project path="platform/gstreamer/core" name="platform/gstreamer/core" />
<project path="platform/gstreamer/depends" name="platform/gstreamer/depends" />
<project path="platform/gstreamer/gstapi" name="platform/gstreamer/gstapi" />
<project path="platform/gstreamer/plugin_gst" name="platform/gstreamer/plugin_gst" />
<project path="platform/gstreamer/plugin_vmc" name="platform/gstreamer/plugin_vmc" />
<project path="platform/ipcamera/doc" name="platform/ipcamera/doc" />
<project path="platform/ipcamera/libs" name="platform/ipcamera/libs" />
<project path="platform/ipcamera/sdk" name="platform/ipcamera/sdk" />
<project path="platform/ipcamera/sofia" name="platform/ipcamera/sofia" />
<project path="platform/ipcamera/utils" name="platform/ipcamera/utils" />
<project path="platform/ipcamera/vimicro" name="platform/ipcamera/vimicro" />
<project path="platform/android" name="platform/android" />
<project path="platform/openmax/hantro_omx" name="platform/openmax/hantro_omx" />
<project path="platform/openmax/on2_omx" name="platform/openmax/on2_omx" />
<project path="platform/openmax/common" name="platform/openmax/common" />
</manifest>
使用repo和git进行工程管理相关推荐
- 【使用技巧】如何在RT-Thread Studio上使用GIT进行工程管理
出处:RT-Thread论坛 无根生 Git 简介 Git 是目前最先进的分布式版本控制系统. 那么,什么是版本控制系统呢? 形象地讲,版本控制就是按照纵向或横向的维度记录当前工程下的变更并进行管理 ...
- repo+manifests+git方式管理安卓代码
repo+manifests+git方式管理安卓代码 1.repo的获取 repo只是google用Python脚本写的调用git的一个脚本,主要是用来下载.管理Android项目的软件仓库.(也就是 ...
- C++工程管理 版本控制git Makefile cmake LInux
工程管理 git git 命令 创建仓库 远端仓库 生成秘钥 git 原理 git add git commit git 整理操作 git 冲突 git checkout git push git f ...
- OpenHarmony设备的开发环境搭建与工程管理(Ubuntu系统环境)
文章目录 开始前的废话 本篇文章是介绍在**Ubuntu环境**下,如何搭建一套完整的可视化开发环境.笔者经过测试Ubuntu 20.04系统环境下操作都可以实现. 开发环境的搭建 第一步: 修改Ub ...
- iOS架构-cocoapods之本地git库的管理(15)
需求是:在工程中用cocoapods管理一个本地的一个抽离SDK库.和cocoapods管理远程的github的公开的库AFNetworking 一样管理自己的本地的一个库. 怎么实现:参看Cocoa ...
- Golang实践录:工程管理
本文介绍Golang的工程管理. 工程概述 GOPATH目录下创建三个目录: src 存放源代码,每个工程一个单独的目录 pkg 编译过后生成的包文件存放目录,根据平台有不同目录,里面有许多.a库,暂 ...
- Git实战(五)| 让工作更高效,Git的分支管理
上一篇讲到Git的分支管理实操,在线合并和本地合并都进行了实操.毕竟:光说不练是假把式.而只练不整理,只能是傻把式了.分支管理到底如何进行管理呢? 先以GitLab上的一张经典的图打头,作为一个总体概 ...
- 工程管理中的工程技术
想想要贴21张图片,我还是放弃了. 请移步[https://zhuanlan.zhihu.com/p/31533288?group_id=919258106568839168]阅读有图的版本. 无图的 ...
- 玩转Zynq连载10——使用GIT进行工程备份和版本管理2
特权同学玩转Zynq连载10--使用GIT进行工程备份和版本管理2 2 使用GIT进行日常备份管理 2.1 GIT的基本工作原理 通过下面几个图解,希望大家能理解GIT做备份管理的机理. 使用GIT备 ...
最新文章
- Molly's Chemicals
- 配置MySQL8.0
- 动手学深度学习(PyTorch实现)(六)--卷积神经网络基础
- 前端:JS/19/特殊运算符,运算符优先级,if条件判断语句,switch分支语句,while循环语句,for循环语句,break和continue循环控制语句,实例:九九乘法表
- Android/Linux性能分析工具推荐
- 胡适:一个最低限度的国学书目
- 教你用手机代替各类门禁卡
- 小米5预装android版本,小米5刷机原生OS
- PHP中的FPM是做什么的_fpm的配置与使用
- 大象不会跳舞了吗?营收下滑的IBM在干什么
- 【网页设计】31:文本声明
- 力扣刷题 DAY_75 贪心
- HDU 5296 Annoying problem LCA+树状数组
- 安徽省大数据与人工智能竞赛经验分享-4【从赛题角度看人员分工】
- Openface人脸识别的原理与过程
- matlab有限元三角,三角形单元有限元计算程序(matlab)
- DIV在FLASH上面、FLASH透明背景
- 硬件加速. 记得加入
- 运维之道 | 三剑客之awk命令 - 排查统替
- proteus导入仿真模型——旋转编码器