将 git-repository 提交到不同的 git-repository 分支

将 git-repository 提交到不同的 git-repository 分支

考虑以下设置:一个 Repository1 位于 Bitbucket 上。本地工作副本位于我的机器上。我在本地更改文件,提交并推送到 Repository1。

Repository1(在 Bitbucket 上)(在“主”分支中)中的更改仅由我进行。现在我需要将其中一些更改放入另一个 Repository2 的“功能”分支中,该分支也位于 Bitbucket 上。

但是 Repository2 的内容较新,远程团队在此所做的更改不会反映在 Repository1 或我的工作副本中。Repository2 还包含更多文件,而我的 Repository1 仅包含其中的一小部分。

最后,我想将 Repository1(“master”分支)中的某些更改与 Repository2(“feature”分支)中的较新文件合并。

但是,我所知道的唯一解决方案是不切实际的:整理我更改的文件并手动区分和合并它们,然后将它们复制到我的本地工作副本 Repository2,然后进行提交和推送。

还有其他方法吗?最好是包含自动合并的方法(如果可能)。

提前致谢!

答案1

您的问题分为两部分:如何管理多个存储库以及如何进行合并。

你在 BitBucket 上有两个独立的存储库,而不是一个包含多个分支的存储库,这有什么原因吗?假设有充分的理由,你仍然可以使用本地存储库与两个不同的远程存储库同步,例如

$ git fetch repo1 branch:master
$ git fetch repo2 branch:feature

这将创建本地分支 master 和 feature,即使远程存储库中的分支具有相同的名称。完成对这些分支的操作​​后,您可以使用类似的语法进行推送:

$ git push repo1 master:branch
$ git push repo2 feature:branch

一旦你有了分支的本地副本,你就应该能够将你的更改合并到

$ git checkout feature
$ git merge master

如果有冲突,最好手动解决,但如果你确定master是正确的,则可以将该-s theirs选项添加到命令中merge

相关内容