我想 fork 一个 repo ,以与原始 repo 建立联系。不会有任何 pull 请求或任何将来的 merge 。新的仓库将有一个新的项目名称。我不复制源文件并从头开始全新的 repo 的唯一原因是因为我想保留提交历史记录。我该怎么做呢?
澄清:我确实使用Github。我以前不知道Github有什么特定的东西。对于我的特定需求,我有一个git repo,其中包含两个单独的项目(一个Scala,一个Java)。这两个项目的文件已经开始相互干扰,因此我将 fork 存储库,并在新的存储库中删除Scala项目的所有文件。在原始存储库中,我将删除Java项目的所有文件。
最佳答案
如果您打算保留原始项目中的所有内容(或几乎所有内容),那么我将像平常一样将其 fork 并开始进行大量修改。
如果只需要文件的一小部分,则可以使用filter-branch
从整个历史记录中删除不需要的存储库部分。此步骤将更改每个提交SHA,并使它不可能从原始文件中 pull 出或 merge (至少自动)。不过,没有必要这样做。
如果您担心跨项目的意外污染,那么即使保留了大多数文件,也可以使用filter-branch
步骤来确保历史记录不兼容。如果没有要删除的内容,您可以做一些事情,就像重写初始提交的提交消息一样简单。
如果这是一个github问题,我想您要做的就是将存储库克隆到本地计算机上,在github上创建一个新项目(而不是派生原始项目),然后推送到新项目。据我所知,Github不会弄清楚这种关系。但是,如果您担心的话,初始克隆和推送之间仍然存在filter-branch
。
关于 git (Git):您打算如何 fork 以与原始 repo 建立联系?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28116314/