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的状态。

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

相关推荐
高山莫衣39 分钟前
git rebase多次触发冲突
大数据·git·elasticsearch
码农藏经阁41 分钟前
工作中常用的Git操作命令(一)
git
kobe_OKOK_1 小时前
【团队开发】git 操作流程
git·elasticsearch·团队开发
码农垦荒笔记1 小时前
Git 安装闭坑指南(仅 Windows 环境)
windows·git
CC码码11 小时前
管理你的多个 Git 密钥(多平台多账号)
git·gitlab·github
CC码码11 小时前
管理你的多个 Git 密钥(单平台多账号)
git·gitlab·github
大卫小东(Sheldon)11 小时前
GIM 1.5发布了! 支持Windows系统了
git·ai·rust
flying jiang11 小时前
将大仓库拆分为多个小仓库
git
李boyang10 天前
Git(四):远程操作
git
荻野泽溪10 天前
Git新建分支并同步到远程
git