我的目的是从 github 克隆一个存储库,对其进行一些更改,然后将其与它的子模块存储库一起存储在我公司的 bitbucket 服务器上。我不确定执行此操作的正确方法是什么,因为主 git 存储库中的子模块指针也指向 github 网站。
我注意到的第一件事是,从我的 bit bucket 克隆的所有存储库里面都有一个 .git 文件夹。但是,从 github 克隆的存储库包含一个 .github 文件夹。为什么会这样?它们基本上不是两个 git 存储库吗?
获取主存储库及其子模块并将其放在我的本地位存储桶服务器上的正确方法是什么,以便我始终可以从那里使用它们?这也很重要,这样我就可以远离我雇主的 SSL 证书和防火墙。
如何将存储库的远程更改为我的本地 bitbucket 服务器,同时又能够从 github 中提取更改?
您在从 GitHub 克隆的存储库中看到的
.github
文件夹不是 Git 的特殊文件夹,而是您可以放置某些 GitHub 特定文件的位置,例如 GitHub Actions 工作流或问题模板。您在那里克隆的 Git 存储库也应该有一个普通.git
文件夹。有两种方法可以更改子模块的位置。首先是修改
.gitmodules
文件以指向新位置并提交。另一种是让每个开发人员使用手册页中url.<base>.insteadOf
定义的选项git-config(1)
将旧 URL 重写为新 URL。前者会容易得多,所以这是我推荐的。否则,您应该能够从一个位置克隆存储库并将其推送到另一个位置。但是,您可能希望使用该
--mirror
选项来克隆所有分支和标签。