复制存储库并摆脱与其父存储库的任何依赖关系的正确方法是什么?

Which is the right way to duplicate a repository and get rid of any dependency with it's parent?

我需要在不分叉的情况下复制一个存储库,因为我不会对父存储库进行任何 PR。所以我从 Github 中找到了 this docs 并按照其中的步骤操作。

原始存储库是docker-nginx-php and I have created the duplicated in my account under another-lamp-docker

我希望看到的只是存储库的副本,但没有提及以前的提交、贡献者、作者等,是的,我没有偷这个作品,我会让人们知道 README 新作品基于此原始存储库。

因此,我看到了以下行为:

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

  • 克隆存储库。
  • 删除 .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 一个现有的项目,为什么不通过现有的 "fork" 机制来做呢?你想通过消除现有项目的贡献历史来避免什么?这将使您更难合并原始存储库中的更改和错误修复(当然,如果您修复了一些普遍感兴趣的内容,您将更难回馈更改)。

当您复制一个存储库时,您也会复制它的 .git 历史所在的文件夹,所以是的,这是预期的行为。

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

我建议只下载 zip 文件并将其转换为 git 存储库。然后你可以设置你的远程 url 并推送到新的 repo。 GitHub

中不应出现任何历史记录或之前的所有者
  1. 下载 Zip
  2. cd 在项目目录中,并使用 git init
  3. 将项目文件夹转换为本地 Git 存储库
  4. 使用 git add .
  5. 将项目文件添加到暂存区
  6. 将您的遥控器 git url 设置为 git remote add origin <url>
  7. 在本地提交 git commit -m 'message'
  8. 使用 git push -u origin master
  9. 推送到远程