repo和git的常用命令

repo 简介

repo是Google开发的用于管理Android版本库的一个工具,repo是使用Python对git进行了一定的封装,并不是用于取代git,它简化了对多个Git版本库的管理。用repo管理的版本库都需要使用git命令来进行操作。因此,使用repo工具之前,请先确保已经安装git。

repo是一个用于管理多个Git仓库的工具,它可以帮助您在一个代码库中管理多个Git仓库的代码。

为什么要用repo?

项目模块化/组件化之后各模块也作为独立的 Git 仓库从主项目里剥离了出去,各模块各自管理自己的版本。Android源码引用了很多开源项目,每一个子项目都是一个Git仓库,每个Git仓库都有很多分支版本,为了方便统一管理各个子项目的Git仓库,需要一个上层工具批量进行处理,因此repo诞生。

repo也会建立一个Git仓库,用来记录当前Android版本下各个子项目的Git仓库分别处于哪一个分支,这个仓库通常叫做:manifest仓库(清单库)。

repo的使用

repo下载安装

下载地址:https://mirrors.tuna.tsinghua.edu.cn/git/git-repo ,将下载下来的文件命名为repo,放在PATH环境变量所包含的目录下面,例如可以放在/usr/local/bin目录下(后面介绍均以放在/usr/local/bin目录下为例)。

或者,直接使用curl命令下载:

bash 复制代码
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

以上命令将在您的

~/bin目录中下载并安装repo脚本。

初始化代码库

在使用repo之前,您需要在本地计算机上初始化一个代码库,并将其与

repo关联。在您的本地计算机上,创建一个目录并初始化代码库:

bash 复制代码
$ mkdir myproject
$ cd myproject
$ repo init -u <URL>

其中

是您要使用的Git仓库的URL。这将在当前目录中创建一个

.repo目录,并将

repo工具的配置文件下载到该目录中。

同步代码

一旦您初始化了代码库,就可以使用以下命令将代码同步到本地:

bash 复制代码
$ repo sync

这将使用

repo工具自动下载和更新所有Git仓库中的代码。

管理Git仓库

使用repo start命令创建一个新的分支,然后使用

repo upload命令将更改提交到代码审查工具中。您还可以使用

repo forall命令在所有Git仓库中执行任意Git命令。

更新代码

您可以使用以下命令更新代码库中的所有Git仓库:

bash 复制代码
$ repo sync

这将下载和更新所有Git仓库中的代码。以上是

repo的基本使用介绍。使用repo可以更轻松地管理多个Git仓库,并使您能够更方便地进行代码共享和代码审查。

查看repo管理下的代码更新历史记录

如果您使用repo管理多个Git仓库,在repo中查看整个代码库的修改记录,可以使用以下命令:

plaintextCopy coderepo forall -c 'git log'

这将为每个Git仓库输出其Git日志。您也可以使用以下命令查看某个特定仓库的修改记录:

plaintextCopy coderepo forall <project_name> -c 'git log'

其中<project_name>是您要查看的特定仓库的名称。请注意,repo只是一个管理多个Git仓库的工具,它本身并不存储代码,因此不能直接查看整个代码库的修改记录。

git的常用命令

git log

git log执行后会返回一个冒号,表示等待用户输入搜索参数,以便更准确地查看提交记录。如果用户不输入任何参数,则会显示所有提交记录。

用户输入的参数有哪些?

用户可以输入的搜索参数包括:

  • 作者:--author
  • 日期:--since 或--after ,--until 或--before
  • 关键词:--grep
  • 提交信息:--oneline,--subject,--body
  • 限制结果数:-n

git reflog 查看每一次操作

git log --all --pretty=oneline --graph 查看所有提交记录

使用git log 命令可以查看每一笔修改涉及到哪些文件,具体方法如下:

  1. 查看某次提交:git log -p <commit_id>
  2. 查看某个文件的历史提交:git log -p <file_name>
  3. 查看某段时间内的提交:git log --since= --until=
    git log --since="2020-07-05" --until="2020-07-10"

这个命令会查询出在2020年7月5日到2020年7月10日之间的所有提交记录。

查看某次提交中涉及到的文件:git show <commit_id>

可以使用git show --name-only <commit_id> 命令来查看某一次提交修改的文件,不需要看到具体修改。

git log --since="2023-02-05" --until="2023-03-10"|grep "^commit"|awk '{print $2}'|xargs git show --name-only

废弃修改

如果你在repo仓库中修改了一些东西,但是不想上传并希望废弃这些修改,可以使用以下命令来撤销这些修改:

repo forall -c "git reset --hard"

该命令会遍历repo仓库下的所有git仓库,并将它们的工作区和暂存区恢复到HEAD的状态,即撤销所有修改。执行该命令前,请确保你已经保存了需要保留的修改,并做好了备份。

如果你只想撤销某个git仓库中的修改,可以进入该仓库的目录,然后执行以下命令:

撤销该仓库中的所有修改

git reset --hard

该命令将撤销该仓库中的所有修改,并将工作区和暂存区恢复到HEAD的状态。

需要注意的是,撤销修改会丢失已修改的内容,所以在执行该操作前,请确保你已经保存了需要保留的修改,并做好了备份。

相关推荐
SiYuanFeng8 小时前
新手学Git:如何把本地 Git 项目上传到 GitHub
git·github
前端若水10 小时前
git回退并合并分支操作
git
程序员鱼皮15 小时前
Git WorkTree 是什么?凭什么能让 AI 编程效率翻倍?
git·ai·程序员·编程·ai编程
懵逼的小黑子17 小时前
git与远程仓库创建连接
git
前端若水18 小时前
Git 撤销与恢复完全指南(超级详细版)
大数据·git·elasticsearch
golang学习记18 小时前
Git 2.54 来了,这个新命令让我终于敢重写历史了
git·后端
其实防守也摸鱼18 小时前
AWVS下载和安装保姆级教程
linux·服务器·git
前端若水18 小时前
Git 可以做的所有操作(完整分类)
大数据·git·elasticsearch
叹一曲当时只道是寻常18 小时前
Reference 工具安装与使用教程:一条命令管理 Git 仓库引用与知识沉淀
人工智能·git·ai·开源·github
前端若水19 小时前
Git 仓库管理命令完全指南(超级详细版)
大数据·git·elasticsearch