复制没有历史记录的git仓库

时间:2015-03-31 12:35:50

标签: git github git-fork

我目前在github上有一个私有存储库,我想公开。然而,一些初始提交包含我不想公开的信息(硬编码的等等)。

在不包含部分或全部提交历史记录的情况下,将最新提交公开(我真的不需要或想要公共存储库中的先前提交)的最简单路由是什么?

6 个答案:

答案 0 :(得分:217)

您可以在cloning

时限制历史记录的深度
--depth <depth>
Create a shallow clone with a history truncated to the specified 
number of revisions.

如果您想要有限的历史记录,请使用此功能,但仍有一些。

答案 1 :(得分:194)

使用以下命令:

git clone --depth <depth> -b <branch> <repo_url>

其中:

  • depth是您要包含的提交量。即如果您只想使用最新提交git clone --depth 1
  • branch是要从中克隆的远程分支的名称。即如果您希望master分支的最后3次提交使用git clone --depth 3 -b master
  • repo_url是您的存储库的网址

答案 2 :(得分:6)

"parse-server": "*",

答案 3 :(得分:4)

删除.git文件夹是最简单的路径,因为您不需要/不需要历史记录(如Stephan所说)。

因此,您可以根据最近的提交创建新的存储库:How to clone seed/kick-start project without the whole history?

git clone <git_url>

然后删除.git,然后运行

git init

或者如果您想重用当前的存储库Make the current commit the only (initial) commit in a Git repository?

然后按照上述步骤操作:

git add .
git commit -m "Initial commit"

推送到您的仓库。

git remote add origin <github-uri>
git push -u --force origin master

答案 4 :(得分:0)

这不是挤压基准站的功能吗?压扁除最后一次提交以外的所有内容,然后(强制)推送它。

答案 5 :(得分:0)

您可以将 GitHub 存储库设置为模板(通过转到设置并选择存储库名称正下方的选项)。代码页上将出现一个“使用此模板”按钮。这会复制所有文件,但会删除所有历史记录,如果您将原始存储库保留为私有,则存储库名称下不会显示任何详细信息(请注意,它将显示在您的站点上,因为您拥有这两个文件,但不会显示给其他任何人) .只有当存储库是公开的时,才会在存储库名称下显示原始存储库的链接。