将远程git repo与本地git repo合并
我在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将远程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在
请协助 假设
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