2

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

现在有什么方法可以将项目 B 设置为 A 的分支吗?

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

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

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

4

2 回答 2

3

如果您只关心进行更改,而不关心具体的提交历史......

只需从 B 中删除 .git 目录并将 .git 目录从 A 复制到 B 即可,您或多或少就完成了。

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

$ cd b-dir
$ git remote add origin path/to/a-dir
于 2014-06-10T02:19:28.530 回答
0

我试过这个:

  1. 项目清单
  2. 将A_local和B_local推送到在 BitBucket 上拥有A_remoteB_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

这保存了一条提交消息,现在我将B作为A的分支。然后我这样做是为了将更改从 B 复制到 A:

  1. 在本地克隆存储库A_local 上,我将B_remote_new设置为远程并将其签出为本地分支。
  2. Cherry使用分支从B中挑选所有必要的提交以提高可用性并推送它。

这不是最简单的方法,但对我来说很容易理解,而且正如我所见,它奏效了。=) 现在我有两个存储库,其中一个是另一个具有所有提交历史记录的分支。使用分支和 BitBucking 界面,我可以将新的更改从一个应用到另一个(两个存储库都显示在拉取请求窗口中)。

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

于 2014-06-13T04:26:17.330 回答