type
status
date
slug
summary
tags
category
icon
password

1. 仓库迁移

背景:现在有一个仓库,托管在gitlab上,本人没有gitlab仓库的访问修改等权限,现在拿到了该仓库clone在本地的仓库,想把他托管在github等其他平台上,需要如何操作
  1. 在 GitHub 上创建一个新的空仓库,用于存放你的项目。这个仓库将成为你的目标仓库。
  1. 在你的本地 GitLab 仓库中添加一个指向 GitHub 仓库的远程地址。使用以下命令将 GitHub 仓库作为远程地址添加到你的 GitLab 仓库中:
    1. 替换 你的用户名 和 你的目标仓库名 为你在 GitHub 上的用户名和目标仓库名。
  1. 将你的 GitLab 仓库推送到 GitHub。使用以下命令将你的 GitLab 仓库的所有分支和提交记录推送到 GitHub:
    1. 这将保留你的提交历史。请注意,这样做会丢失访问控制(例如在 GitLab 中定义的团队和仓库的特定访问权限)。
  1. 此时在github可能只显示master或main分支,要解决这个问题,你需要将这些远程追踪分支转换成对应的本地分支,并且再次推送它们。下面是你可以遵循的一系列步骤:
    1. 列出当前所有的远程追踪分支:
      1. 为每一个远程追踪分支创建一个本地分支,并将其推送到GitHub。一个快捷的方式是使用以下命令(在shell中)创建并推送所有的分支到GitHub:
        1. 进入github查看分支情况
      1. 如果你在使用 GitHub 仓库的 HTTPS URL 时遇到问题,可能会出现类似以下错误:
        1. 这时你需要输入你的 GitHub 密码。如果你想使用 SSH 方式推送,你可以阅读更多关于如何设置的信息 这里。

      2. 子仓库添加和删除

      添加(我现在有一个仓库A,现在我想把仓库B作为子仓库放在仓库A的src目录下)

      1. 克隆你的ROS工作空间仓库
      如果还没有克隆你的ROS工作空间仓库到本地,请先进行克隆操作:
      2. 添加子模块
      将功能包b作为子模块添加到src目录下:
      3. 初始化和更新子模块
      在克隆或者下载了你的ROS工作空间后,需要初始化和更新子模块:
      4. 提交子模块更改
      添加和提交子模块更改:
      5. 在子模块内进行更改
      如果需要在子模块内进行更改,先进入到子模块目录:
      然后可以正常进行Git操作,如commit、push等:
      6. 更新子模块
      如果功能包b(子模块)的仓库有更新,你需要在你的ROS工作空间中更新它:
      按照以上步骤进行操作,你的ROS工作空间就能够成功管理功能包b,并将其作为子模块托管在GitHub上。

      删除(对于添加的子仓库B,发现手动下载至指定目录也可以,想反悔上述添加动作)

      1. 删除子模块目录
      2. 修改.gitmodules文件
      手动编辑.gitmodules文件,删除与子模块相关的条目。例如:
      打开 .gitmodules 文件,你会看到类似于以下内容:
      删除这一节内容,然后保存并退出。
      3. 修改config文件
      如果你也有 .git/config 文件中包含子模块的配置,手动删除相关条目。类似:
      [submodule "src/repo_b"] url = https://github.com/username/repo_b.git
      机器人仿真软件综述VSCode GDB 调试 Eigen可视化