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

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

相关推荐
Franklin7 小时前
VS 版本更新git安全保护问题的解决
git
我是一只代码狗11 小时前
idea中合并git分支
git
我是一只代码狗11 小时前
idea中使用git
git·gitee·github
恋喵大鲤鱼11 小时前
git restore
git·git restore
李少兄12 小时前
Git Commit Message写错后如何修改?已Push的提交如何安全修复?
git·安全
Fireworkitte12 小时前
git stash
git
pe7er1 天前
git submodule简易指南
git
xiaocainiao8811 天前
Python 实战:构建 Git 自动化助手
git·python·自动化
Casia_Dominic2 天前
【三维重建工具】NeRFStudio、3D GaussianSplatting、Colmap安装与使用指南
git·3d·github·点云