如何创建一个新的 git 仓库,它的第一次提交是源的最后一次提交(没有历史,没有链接到源仓库,只有主分支)

how create a new git repo whose first commit is the last commit of the source (no history, not linked to source repo, and only the master branch)

如何创建 git 存储库的克隆,该存储库仅包含主分支且仅包含最近的提交,并且可以推送到位于 github/bitbucket/etc 的新存储库?

我有一个很大的 git 存储库……几 GB……增长了十多年……很多过时的二进制文件……很多旧分支。这是当前的旧版应用程序。

我们正在创建一个新应用,并希望创建一个仅包含当前提交和主分支的新存储库。

我想也许我应该做一些像 git clone --depth [depth] [remote-url] 这样的浅层克隆,但是

a) 我不确定如何不包含除 master 之外的任何分支?

b) 更重要的是,git clone --depth 的问题是它创建了某种 'grafted' 提交,然后无法将其推送到 github(“不允许浅更新” " 问题)。

我应该提一下,在这种情况下,我在同一台计算机上有遗留回购协议,以防“正确的答案是简单地复制项目文件夹并删除 .git 文件夹。但我”我希望有 git 方法来作为更通用的解决方案。

从当前 master 的头部创建一个孤立分支。

git checkout --orphan foo master
git commit

foo 推送到新存储库。

git push <url_to_new_repo> foo:refs/heads/bar

因为你提到了很多二进制文件,我建议你使用 git lfs 来跟踪它们。

in case the right answer is to simply copy the project folder and trash the .git folder.

在你的情况下,我相信从一个新的具有文件最新状态的新回购开始“最佳”答案。做任何其他事情你真的不会有太多收获。此外,无论如何,您可能想要 re-write 最近的提交消息;让你在新仓库中的第一次提交说“修复 X ​​中的错误”不会很有帮助。