哪种方法可以复制存储库并摆脱对其父级的依赖?

时间:2016-11-17 14:18:28

标签: git github git-clone

我需要复制存储库而不需要它,因为我不会对父存储库进行任何PR。所以我从Github找到this docs,然后按照那里的步骤进行操作。

原始存储库为docker-nginx-php,我已在another-lamp-docker

下的帐户中创建了重复的存储库

我希望看到的只是存储库的副本,但没有任何参考先前的提交,贡献者,作者等等,是的,我没有偷走这项工作,我会在README上知道新工作基于这个原始存储库。

结果我看到以下行为:

  • 下图显示了重复存储库的主屏幕:

enter image description here

  • 下图显示了分支选项卡,显示了原始存储库中的4分支,但也显示了依赖关系。

enter image description here

  • 即使在贡献者标签上,我也看到了老主人

enter image description here

  • 这是复制存储库的预期行为吗?
  • 我可以摆脱所有历史(我相信这是它的信息)吗?
  • 如果是这样的话?

3 个答案:

答案 0 :(得分:1)

如果你真的想要删除所有过去的历史记录:

  • 克隆存储库。
  • 删除.git目录(rm -rf .git
  • 初始化新的git存储库(git init
  • 提交所有文件(git add .; git commit -m 'Initial commit'
  • 在GitHub上创建目标存储库
  • 将github存储库配置为远程(git remote add origin git@github.com:...
  • 将您的本地存储库推送到GitHub(git push -u origin master

现在您拥有原始存储库中的所有文件,但没有任何历史记录。

虽然这样可行,但我认为这通常是一个坏主意。如果您要分叉现有项目,为什么不通过现有的" fork"机制?您想通过消除现有项目的贡献历史来避免什么?这将使您更难以合并原始存储库中的更改和错误修复(当然,如果您修复了可能引起普遍关注的事情,您将更难以提交更改。)

答案 1 :(得分:0)

当您复制存储库时,您还会复制其历史记录所在的.git文件夹,因此这是预期的行为。

是的,你可以摆脱它,看看this回答。

答案 2 :(得分:0)

我建议只下载zip文件并将其转换为git repo。然后,您可以设置远程URL并推送到新的仓库。您不应该在GitHub中显示任何历史记录或以前的所有者

  1. 下载Zip
  2. 项目目录中的
  3. cd并将项目文件夹转换为git init的本地Git仓库
  4. 使用git add .
  5. 将项目文件添加到暂存区域
  6. 使用git remote add origin <url>
  7. 设置您的远程git网址
  8. 使用git commit -m 'message'
  9. 在本地提交
  10. 使用git push -u origin master
  11. 推送到远程