我已经做了一些搜索并阅读了 git 书籍和网络上的一些地方(例如 git),但我找不到正确的方法来做到这一点。
我有两个 git 存储库,位于两台不同的机器上。这些 git 存储库中的每一个都保存程序的配置。当您比较两个存储库时,配置的某些部分相同,而某些部分则不同。
我们想要做的是创建第三个存储库,并将其他两个存储库的内容合并到这个新存储库中。我希望通过此实现的是拥有一个存储库,其中包含其他两个存储库的所有数据,但只有一份副本。这样,我们希望 git 能够告诉我们两个存储库之间有什么不同,并将这些更改合并为一个。
希望这很容易理解。
我尝试过创建一个新的 git 存储库、对一台服务器进行 git 克隆、创建一个新分支并
对另一个存储库进行 git 克隆,然后要求 git 合并它们。我还尝试了子树合并,但这些都没有产生我想要的结果。
第一个例子,简单地说删除所有文件并添加一堆新文件。这不是我们想要的,我们想要一个 git 存储库,其中包含将两个远程存储库合并在一起而生成的配置的单个副本。
如果有人可以帮助解决这个问题,我们将不胜感激。
顺便说一句,两个存储库数据都由相同的文件组成,文件名相同,但内容略有不同。
如果我们假设存储库名为 A 和 B,您可以首先将 A 或 B 克隆到 C 中:
$ git clone git://path/to/A.git
现在C与A相同(并且A是C的起源)。我们现在可以将 B 作为远程添加到 C 并创建一个跟踪分支 masterB 来跟踪 B 的 master 分支:
$ git remote add B git://another/path/to/B.git
$ git fetch B
$ git checkout --track masterB B/master
现在C的master分支与A的master分支相同,masterB分支与B上的master分支相同。我们现在可以将masterB合并到master中:
$ git checkout master
$ git merge masterB
$ .. solve conflicts
除非您需要跟踪原始存储库,否则我们可以使用以下方法进行清理:
$ git remote rm origin
$ git remote rm B
$ git branch -d masterB
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)