Git 如果已手动复制,则将存储库标记为fork
我是Git新手,做了一件蠢事:我有一个项目a,然后手动为新项目B复制了它(没有Git文件夹),创建了一个新的存储库,并同时在这两个项目中工作 现在有没有办法将项目B设置为a的分支 ps:我需要它来在项目之间交换提交,而补丁似乎不是一个解决方案 UPD 11.07:正如我所说,主要目的是将一些提交从B“移动”到A,反之亦然Git 如果已手动复制,则将存储库标记为fork,git,git-fork,Git,Git Fork,我是Git新手,做了一件蠢事:我有一个项目a,然后手动为新项目B复制了它(没有Git文件夹),创建了一个新的存储库,并同时在这两个项目中工作 现在有没有办法将项目B设置为a的分支 ps:我需要它来在项目之间交换提交,而补丁似乎不是一个解决方案 UPD 11.07:正如我所说,主要目的是将一些提交从B“移动”到A,反之亦然 UPD 13.07:将解决方案移动到答案中如果您只关心进行更改,而不关心具体的提交历史 只需从B中删除.git目录,并将.git目录从A复制到B,就差不多完成了 Git现在将把
UPD 13.07:将解决方案移动到答案中如果您只关心进行更改,而不关心具体的提交历史 只需从B中删除.git目录,并将.git目录从A复制到B,就差不多完成了 Git现在将把您在B中所做的所有更改标识为未老化的更改。转移并提交它们,如果您想在它们之间共享代码,请将A设置为B的远程:
$ cd b-dir
$ git remote add origin path/to/a-dir
我试过这个:
ps:我没有找到一种方法将一个本地仓库设置为另一个本地仓库的远程位置,我已经使用了一个BitBucked,这就是我选择它的原因。我认为同样的事情也可以在github中完成。应该很简单;垃圾桶B,将A克隆到B。Jack,B中的提交如何?这取决于两个代码库的分歧程度,但您可以在两个项目上运行差异,并对第一个项目应用选择性更改。抱歉,我没有正确理解:使用差异,我会对A应用一些更改(不是吗?),但对于只应该在B中的提交如何?fork,您是指“克隆”吗?或者像GitHub fork那样使用fork?但是如果我从B中删除.git文件夹,我将丢失从B中提交的所有内容。你介意吗?您可以进行一次提交,以捕获存储库的当前状态,不会丢失任何更改。也许他是说提交消息将消失?无论如何,这个解决方案看起来比我的好,所以+1:)这是一个简单的方法,但正如我所提到的-我想保存消息,并将选定的提交进一步复制到另一个存储库。