为什么从 Github 克隆的存储库包含 .github 文件夹而不是 .git 文件夹?

为什么从 Github 克隆的存储库包含 .github 文件夹而不是 .git 文件夹?

我的目的是从 github 克隆一个存储库,对其进行一些更改,然后将其连同其子模块存储库一起存储在我公司的 bitbucket 服务器上。我不确定执行此操作的正确方法是什么,因为主 git 存储库内的子模块指针也指向 github 网站。

我注意到的第一件事是,从我的 bit bucket 克隆的所有存储库中都有一个 .git 文件夹。但是,从 github 克隆的存储库包含一个 .github 文件夹。为什么会这样?它们基本上不都是 git 存储库吗?

将主存储库及其子模块放在本地位存储服务器上的正确方法是什么,以便我可以随时从那里使用它们? 这也很重要,这样我就可以远离雇主的 SSL 证书和防火墙的困扰。

如何将存储库的远程更改为我的本地 bitbucket 服务器,同时又能从 github 提取更改?

答案1

您在从 GitHub 克隆的存储库中看到的文件夹.github不是 Git 的特殊文件夹,而是可以放置某些 GitHub 特定文件(例如 GitHub Actions 工作流程或问题模板)的位置。您在那里克隆的 Git 存储库也应该有一个普通.git文件夹。

有两种方法可以更改子模块位置。第一种方法是修改文件.gitmodules以指向新位置并提交。另一种方法是让每个开发人员使用手册页url.<base>.insteadOf中定义的选项git-config(1)将旧 URL 重写为新 URL。前者会容易得多,所以我推荐前者。

否则,您应该能够从一个位置克隆存储库并将其推送到另一个位置。--mirror但是,您可能希望使用该选项克隆所有分支和标签。

相关内容