手把手教你用Git——Git如何管理仓库

2,959 阅读5分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 29 天,点击查看活动详情

前言

背景

由于本社新人并不常用Git,再加上国内的网络并不算好,在这样一个背景下,为了简化Git的使用,我在这里简单记录了一个关于 Git的教程,希望对大家有所帮助。

关于本教程的编写环境

本文基于Windows10系统Mac系统的小伙伴可以尝试Homebrew。由于本人手里并没有搭载MacOS的电脑,因此Homebrew相关的使用请自行尝试。

对于使用 Windows11系统 的小伙伴,本文的教程是通用的,不过一些细节可能略有不同,这点希望小伙伴们注意一下

关于Git

Git 是一个开源的分布式版本控制系统,可以有效、快速的进行项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 ——来自 Git 简介 | 程序员大彬 (topjavaer.cn)

简单来说,Git 就是一个项目代码管理软件

关于本教程的评论

这个教程基于我的个人实践,很多东西基于我个人的理解,所以有望大家多多指教。如果你发现了这个教程的错误之处,欢迎你通过邮箱或者QQ联系我,我会及时的进行改进。如果教程中有表述不清楚的地方,也请指出,或提供建议。

关于本教程的转载

任何个人或组织可以转载我的这个教程系列,甚至可以对其进行一些修改。但前提是要保证实时更新,并且保留本教程的版权信息,谢谢支持,我也会不定时的更新这个系列的教程。

正文

安装与使用

具体安装教程可以看看这个系列的第一期:手把手教你用Git——Git使用教程(一) - 掘金 (juejin.cn) Git Submodule是Git版本控制系统的一个功能,它允许将一个Git存储库嵌套到另一个Git存储库中,以便能够对其进行独立的版本控制。

Git Submodule

通过Git Submodule,可以将外部Git存储库作为一个子模块添加到您的项目中,这个子模块本身具有自己的版本控制和历史记录。这对于处理依赖关系特别有用,例如,当您的项目依赖于其他开源项目时,您可以将这些项目作为子模块添加到您的项目中,以便能够随时跟踪它们的更新。

下面我将结合具体的指令,进一步介绍如何使用Git Submodule:

  1. 添加子模块 使用git submodule add命令来添加一个子模块,例如:
git submodule add https://github.com/example/submodule.git path/to/submodule

这将在您的项目中创建一个名为path/to/submodule的子目录,并将https://github.com/example/submodule.git作为子模块添加到该目录中。您可以将子模块添加到存储库的任何目录中,只需将path/to/submodule替换为您希望将子模块添加到的目录路径即可。

  1. 初始化和更新子模块 在添加子模块后,您需要使用git submodule init命令来初始化子模块,并使用git submodule update命令将子模块克隆到本地存储库中。例如:
git submodule init
git submodule update

这将初始化并更新所有子模块。如果您只需要更新某个子模块,可以使用--remote选项来获取最新版本的代码:

git submodule update --remote path/to/submodule
  1. 提交子模块更改 在对子模块进行更改后,需要将更改提交到父存储库中。首先,您需要在子模块中进行更改并提交:
cd path/to/submodule
# Make changes and commit them
git add .
git commit -m "Updated submodule"

然后,您需要返回到父存储库并提交子模块更改:

cd ..
git add path/to/submodule
git commit -m "Updated submodule"

git-repo

Git Repo是由Google开发的用于管理多个Git存储库的工具。它提供了一个单独的Git存储库,称为“仓库”,用于存储多个Git存储库的信息和配置,并提供了一组命令,使得在多个Git存储库之间进行协同开发更加容易。

使用Git Repo,您可以轻松地在一个仓库中管理多个Git存储库,并针对这些存储库执行常用的Git命令,例如克隆、提交、推送等。

以下是一些常用的Git Repo命令:

  1. 初始化一个新的仓库

使用repo init命令来初始化一个新的仓库,并指定使用哪个仓库清单来描述要管理的Git存储库。例如:

repo init -u https://example.com/manifest.git

这将使用名为manifest的Git存储库清单来初始化一个新的仓库。

  1. 同步仓库和存储库

使用repo sync命令来同步仓库和存储库,将存储库中的所有更改同步到本地仓库中。例如:

repo sync

这将使用存储库清单中描述的Git存储库来同步本地仓库和存储库。

  1. 切换到不同的Git分支

使用repo start命令来创建一个新的分支,并将所有存储库切换到该分支。例如:

sql
repo start my-new-branch

这将创建名为my-new-branch的新分支,并将所有存储库切换到该分支。

  1. 提交更改

使用repo upload命令来提交更改,并将它们推送到存储库。例如:

repo upload