在github中将回购标为分支

在github中将回购标为分支,git,github,Git,Github,我们有一个项目,很久以前主要是通过复制/粘贴方法完成的。但回购协议之间仍存在重大重叠 是否可以将这个fork追溯标记为github的fork,这样比较和拉取请求之类的函数就可以做正确的事情 注意:我已经尝试了下面的“hack”,重新分叉,克隆分叉,复制“分叉”内容,然后git add/commit/push。但是,原始“fork”中的文件历史记录丢失,并且分支不会出现。您应该尝试以下方法: 在github中创建原始项目的真正分支 将此设置为复制/粘贴叉的远程(git add remote…)

我们有一个项目,很久以前主要是通过复制/粘贴方法完成的。但回购协议之间仍存在重大重叠

是否可以将这个fork追溯标记为github的fork,这样比较和拉取请求之类的函数就可以做正确的事情


注意:我已经尝试了下面的“hack”,重新分叉,克隆分叉,复制“分叉”内容,然后git add/commit/push。但是,原始“fork”中的文件历史记录丢失,并且分支不会出现。

您应该尝试以下方法:

  • 在github中创建原始项目的真正分支
  • 将此设置为复制/粘贴叉的远程(
    git add remote…
  • 然后在此基础上重新设置工作的基础(
    git-rebase
由于您不想将提交“压缩”到单个文件中,您可以做的是:

  • 分叉“原始”存储库
  • 从您的“复制并粘贴”回购创建一个拉取请求
或者您可以看看如何合并两个存储库,如中所示。就像他们在那里做的那样,你可以将你的“c&p回购”作为子树添加到fork中,就像详细解释的那样

以下是指南中采取的步骤:

git remote add -f c&prepo /path/to/c&prepo
git merge -s ours --no-commit c&prepo/master
git read-tree --prefix=vendor/c&prepo/ -u c&prepo/master
git commit
但是,即使使用这些方法,也无法合并整个存储库,只能合并特定的分支。您可以做的就是为每个分支创建一个pull请求(在我的第一个方法中描述),这可能需要一些时间,具体取决于您的分支模型


我认为实际上没有一种解决方案可以合并两个不同的存储库,同时保持它们的提交历史分支。祝你好运。

作为一名黑客,你可以在github中转出一份回购协议,然后上传你的转出版本以替换github中的新转出。虽然这将导致额外的commit.mables@ShoaibShakeel的副本,但OP始终可以强制将其代码推送到新的fork;我知道这是皱眉头,但如果做得够快,在一个新的叉子还没有偏离原来的回购,我没有看到任何伤害。也许这可以帮助你:嗨,你是否考虑接受一个答案,如果有人帮你?