我在GitHub上有一个私人存储库,我想让它公开。但是,一些初始提交包含我不想公开的信息(硬编码的凭证等)。
在不包含部分或全部提交历史的情况下,使最近的提交公开(我真的不需要或不希望在公共存储库中保存以前的提交)的最简单方法是什么?
我在GitHub上有一个私人存储库,我想让它公开。但是,一些初始提交包含我不想公开的信息(硬编码的凭证等)。
在不包含部分或全部提交历史的情况下,使最近的提交公开(我真的不需要或不希望在公共存储库中保存以前的提交)的最简单方法是什么?
当前回答
删除.git文件夹可能是最简单的路径,因为您不想要/不需要历史记录(如Stephan所说)。
所以你可以从最近的提交中创建一个新的repo: (如何克隆种子/启动项目没有整个历史?)
git clone <git_url>
然后删除。git,然后运行
git init
或者如果你想重复使用你当前的回购: 使当前提交成为Git存储库中唯一的(初始)提交?
按照以上步骤进行:
git add .
git commit -m "Initial commit"
推到你的回购。
git remote add origin <github-uri>
git push -u --force origin master
其他回答
删除.git文件夹可能是最简单的路径,因为您不想要/不需要历史记录(如Stephan所说)。
所以你可以从最近的提交中创建一个新的repo: (如何克隆种子/启动项目没有整个历史?)
git clone <git_url>
然后删除。git,然后运行
git init
或者如果你想重复使用你当前的回购: 使当前提交成为Git存储库中唯一的(初始)提交?
按照以上步骤进行:
git add .
git commit -m "Initial commit"
推到你的回购。
git remote add origin <github-uri>
git push -u --force origin master
你可以在克隆时限制历史的深度:
--depth <depth>
Create a shallow clone with a history truncated to the specified
number of revisions.
如果你想要有限的历史记录,可以使用这个。
使用如下命令:
git clone --depth <depth> -b <branch> <repo_url>
地点:
深度是要包含的提交数量。例如,如果你只想要最新的提交,请使用git clone—depth 1 Branch是要从中进行克隆的远程分支的名称。例如,如果你想从master分支提交最后3次,使用git clone——depth 3 -b master Repo_url是存储库的url
这里的很多答案都使用了git克隆——depth 1,它保留了最后一次提交(包括提交消息)。
如果你想改变最后的提交消息(来自克隆的分支),你可以在克隆之后使用命令:git commit——modify -m "UPDATED message HERE"。
这难道不正是破坏重组的原因吗?只需要压缩所有内容,除了最后一次提交,然后(强制)推送它。