将远程git repo与本地git repo合并

将远程git repo与本地git repo合并,git,Git,我在Laravel框架中有一个Php项目 初始代码状态:A 一个月后,另一个开发者加入了我 6个月后 我的代码状态:A+B 他的代码状态:A+C B和C有许多公共文件,因此我们预计在git合并期间会发生冲突。我们现在希望有一个代码库:a+B+C 我目前的状态/正在实施的战略: 我已经设置了一个代码为a+C的远程git存储库和代码为a+B的本地git存储库 如何最好地将远程git存储库(A+B)与本地git存储库(A+C)合并,以便在本地和远程git repo上都有A+B+C 请协助 假设A+C在

我在Laravel框架中有一个Php项目

初始代码状态:A

一个月后,另一个开发者加入了我

6个月后

我的代码状态:A+B

他的代码状态:A+C

B和C有许多公共文件,因此我们预计在git合并期间会发生冲突。我们现在希望有一个代码库:a+B+C

我目前的状态/正在实施的战略: 我已经设置了一个代码为a+C的远程git存储库和代码为a+B的本地git存储库

如何最好地将远程git存储库(A+B)与本地git存储库(A+C)合并,以便在本地和远程git repo上都有A+B+C


请协助

假设
A+C
在master中,而
A+B
在pull请求分支中。如果B和C修改了相同的文件,它们可能会导致彼此之间的合并冲突,因此您希望在将拉请求分支合并到主文件之前解决这些冲突,以便更容易查看和集成。因此,您应该将master合并到pull请求分支中(这将添加与父级B和C的合并提交),或者根据master重新设置pull请求分支的基础(这将更改分支的提交到
a+C+B
)。

我建议您从
a
创建两个分支,例如:
MY_A
HIS_A
然后您可以将
B
C
添加到您的分支:
MY_A+B
HIS_A+C
解决冲突,然后尝试将其余工作添加到这两个分支中,并选择最简单的解决方法,如下所示:

MY_A+B+C
HIS_A+C+B

但是,使用分支,您永远不会丢失您的工作,并且始终可以在本地执行此操作,而不改变存储库

更新:

首先拉动主分支(
A+C
):

然后从主分支创建分支创建
AC

$ git checkout -b AC master
在转到另一个分支机构之前,确保您的所有工作都已完成

然后从主分支创建另一个分支,创建
AB

$ git checkout -b AB master
在另一个分支中,您可以添加他的代码并提交,而无需担心删除或更改文件

请参阅您的分支使用:

$ git branch
更改为分支
AC
使用:

$ git checkout AC
$ git checkout AB
更改为分支
AB
使用:

$ git checkout AC
$ git checkout AB
现在有两个分支,可以看到差异
,并使用
git diff AC..AB
查看终端中的差异,以及如果在两个分支之间进行合并会发生什么情况。

感谢您的回复。如果我创建一个拉请求,我将在本地有a+B。如果我将A+C复制粘贴到文件夹中,则B将替换为C。。您能否详细说明您的解决方案,以便了解如何将C与pull请求合并。我是一个初学者。我目前对git的了解是我在Jeffrey Way的git系列中学到的?“因此,在将拉入请求分支合并到master之前,您希望解决这些问题,以使其更易于查看和集成”感谢您的回复,但问题是我不再有A,我只有A+B和A+C。我需要A+B+CDid。您试图在:A+B和A+C之间进行区分?不。。如何区分“A+B”和“A+C”。(我在Ubuntu上,我使用Sublime text 3编辑器)看看你可以使用命令行或smartGit之类的图形工具来帮助你学习如何使用git