Mat*_*day 15 git version-control
我已经完成了一些搜索并阅读了git书和网上的一些地方,例如git,但是我找不到正确的方法来做到这一点.
我有两个git repos,坐在两台不同的机器上.这些git repos中的每一个都保存程序的配置.比较两个repos时,配置的某些部分是相同的,而某些部分则不相同.
我们要做的是创建第三个存储库,并将其他两个存储库的内容合并到这个新存储库中.我希望通过这个实现的目的是拥有一个存储库,其中包含来自其他两个存储库的所有数据,但只有一个副本.这样,我们希望git会告诉我们两个repos之间有什么不同,并将这些变化合并为一个.
希望这很容易理解.
我已经尝试创建一个新的git repo,做一个服务器的git克隆,创建一个新的分支并执行另一个repo的git克隆然后要求git合并它们.我也尝试了子树合并,这些都没有产生我想要的.
第一个例子,简单地说删除所有文件并添加一堆新文件.这不是我们想要的,我们想要一个git存储库,其中包含由于将两个远程存储库合并在一起而产生的单个配置副本.
如果有人可以帮助解决这个问题,我将不胜感激.
顺便说一下,两个repos数据都包含相同文件名但内容略有不同的相同文件.
ral*_*nja 21
如果我们假设repos被称为A和B,你可以从A或B克隆到C开始:
$ git clone git://path/to/A.git
Run Code Online (Sandbox Code Playgroud)
现在C与A相同(A是C的原点).我们现在可以将B作为远程添加到C并创建跟踪分支masterB来跟踪B的主分支:
$ git remote add B git://another/path/to/B.git
$ git fetch B
$ git checkout --track masterB B/master
Run Code Online (Sandbox Code Playgroud)
现在C的主分支与A的主分支相同,masterB分支与B上的master相同.我们现在可以将masterB合并到master中:
$ git checkout master
$ git merge masterB
$ .. solve conflicts
Run Code Online (Sandbox Code Playgroud)
除非您需要跟踪原始存储库,否则我们可以通过以下方式进行清理:
$ git remote rm origin
$ git remote rm B
$ git branch -d masterB
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4142 次 |
| 最近记录: |