将存储库标记为fork,如果已手动复制

时间:2014-06-10 01:33:47

标签: git git-fork

我是Git的新手并做了一个愚蠢的事情:我有一个项目A,然后手动将其复制到新项目B(没有git文件夹),创建了一个新的存储库并同时工作两者。

现在有什么方法可以将项目B设置为A的 fork

ps:我需要它来交换项目之间的提交,似乎补丁不是解决方案。

UPD 11.07:正如我所说,主要目的是将一些提交从B移动到A,反之亦然。

UPD 13.07:将解决方案移至答案

2 个答案:

答案 0 :(得分:3)

如果您只关心进行更改,而不是特定的提交历史...

只需从B中删除你的.git目录,然后将.git目录从A复制到B,你或多或少地完成了。

Git现在将识别您在B中所做的所有更改作为未分期更改。暂存它们并提交它们,如果要在它们之间共享代码,请将A设置为B的远程:

$ cd b-dir
$ git remote add origin path/to/a-dir

答案 1 :(得分:0)

我试过了:

  1. 列表项
  2. 推送 A_local B_local 在BitBucket上拥有 A_remote B_remote_tmp 存储库
  3. A_remote 分叉为 B_remote_new ,并在计算机上克隆为 B_local_new
  4. B_remote_tmp 设置为本地存储库 B_local 的远程
  5. 选中本地分支 B_remote_tmp 并将其合并为 B_local
  6. B_local 推送到 B_remote_new 并删除 B_remote_tmp
  7. 这保存了提交消息,现在我将 B 作为分支到 A 。然后我这样做是为了将更改从B复制到A:

    1. 在本地克隆的存储库 A_local 上,我将 B_remote_new 设置为远程并将其签出为本地分支。
    2. 使用分支机构从 B 中挑选所有必要的提交并推送它。
    3. 这不是最简单的方法,但对我来说简单易懂,而且正如我所看到的,它起作用了。 =)现在我有两个存储库,其中一个是具有所有提交历史记录的另一个存储库。使用分支和BitBucked接口,我可以将新的更改从一个应用到另一个(两个存储库都显示在拉取请求窗口中)。

      ps:我没有找到办法将本地存储库设置为远程控制到另一个本地存储库并且我已经使用了BitBucked - 这就是我选择它的原因。我认为同样的事情也可以在github中完成。