繁体   English   中英

将 Git 存储库导入 GitLab 时会发生什么

[英]What Happens When Import Git Repos to GitLab

我想知道是否有人可以帮助我了解当我们将 Git Repos 导入 Gitlab 时到底发生了什么。 元数据会改变吗? 是否在 Gitlab 端创建了一些数据库条目。 我问这个的原因是为什么我们不能在不先将 git repos 导入 gitlab 的情况下使用 gitlab。 有没有办法让 gitlab 开箱即用地使用 git repos 而无需导入它们。

此外,任何有用的链接描述了 gitlab 的整体架构以及它的不同组件如何交互或它的工作流程?

任何帮助将不胜感激。

谢谢。

要在 Gitlab 上托管存储库,您必须首先在 Web 界面中创建存储库。 项目页面将为您提供一个 repo URL。

将现有的 repo 推送到 GitLab

如果要将现有的 git repo 添加到 gitlab:

git remote add gitlab <gitlab repo URL>
git push gitlab master

创建一个新的仓库并推送到 GitLab

如果你从头开始一个 repo,你可以将它克隆为空并像这样添加东西:

git clone <gitlab repo URL>
cd repo_folder
# copy files there, create new ones,...
git add your_files
git commit -m "Added new files"
git push origin master

或者,初始化一个 git 存储库(在空文件夹或具有现有代码的文件夹中,两者都可以),然后添加/提交:

cd some_project_folder
git init
git remote add gitlab <gitlab repo URL>
git add .
git commit -m "Initial commit"
git push gitlab master

这是一个非常古老的问题,自从被问到之后事情可能已经发生了变化,但今天要回答它们(当前最新的GitLab 版本是 14.10,15.0 将于 2022 年 5 月 22 日到期):

  • 高级架构概述描述了 GitLab 的组件。 拥有 git 存储库的组件是Gitaly
  • 在使用 GitLab 之前不需要导入 git 仓库,但可以创建一个没有任何仓库的新项目,然后开始添加,或者从模板创建项目
  • 每个 GitLab 项目都可以包含一个代码 (或其他项目文件)。 这是 git 存储库,它在 GitLab 中提供修订控制功能
  • 导入项目时,会创建一个新的存储库以包含 git 历史记录以及数据库中的元数据。 数据库存储有关存储库的信息,以及其他项目功能,例如问题、合并请求、指向其他功能(例如容器注册表)的链接、wiki 的第二个存储库等。
  • 关于谁在存储库中提交、他们的电子邮件地址、提交时间等信息是通常的 git 数据存储的一部分。 导入时,GitLab 将尝试在这些提交中查找与电子邮件地址匹配的用户,但不会为他们创建新用户帐户,或仅因为使用特定电子邮件地址进行提交而授予私有项目的权限。 GitLab 中的用户必须被授予成员资格才能对私人项目执行操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM