我在GitHub上有一个私人存储库,我想让它公开。但是,一些初始提交包含我不想公开的信息(硬编码的凭证等)。

在不包含部分或全部提交历史的情况下,使最近的提交公开(我真的不需要或不希望在公共存储库中保存以前的提交)的最简单方法是什么?


当前回答

使用如下命令:

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

地点:

深度是要包含的提交数量。例如,如果你只想要最新的提交,请使用git clone—depth 1 Branch是要从中进行克隆的远程分支的名称。例如,如果你想从master分支提交最后3次,使用git clone——depth 3 -b master Repo_url是存储库的url

其他回答

你可以在克隆时限制历史的深度:

--depth <depth>
Create a shallow clone with a history truncated to the specified 
number of revisions.

如果你想要有限的历史记录,可以使用这个。

You could set the GitHub repository to be a template (by going to settings and selecting the option just under the repository name). A button saying "Use this template" will then appear on the Code page. This copies over all the files but removes all history and if you keep the original repo as private, this doesn't show any details under the repo name (note that it will show on your site as you own both but not to anyone else). It's only if the repo is public that a link to the original repo appears under the repo name.

这难道不正是破坏重组的原因吗?只需要压缩所有内容,除了最后一次提交,然后(强制)推送它。

这里的很多答案都使用了git克隆——depth 1,它保留了最后一次提交(包括提交消息)。

如果你想改变最后的提交消息(来自克隆的分支),你可以在克隆之后使用命令:git commit——modify -m "UPDATED message HERE"。

使用如下命令:

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

地点:

深度是要包含的提交数量。例如,如果你只想要最新的提交,请使用git clone—depth 1 Branch是要从中进行克隆的远程分支的名称。例如,如果你想从master分支提交最后3次,使用git clone——depth 3 -b master Repo_url是存储库的url