将git repo合并到另一个repo的分支中

问题描述 投票:74回答:3

鉴于repo Foo和repo Bar。我想将Bar与Foo合并,但只能合并到一个名为baz的独立分支中。

git checkout -b baz <=把酒吧回购放在这里。

git
3个回答
166
投票

您无法将存储库合并到分支中。您可以将另一个存储库中的分支合并到本地存储库中的分支中。假设您有两个存储库,foobar都位于您当前的目录中:

$ ls
foo bar

转到foo存储库:

$ cd foo

bar存储库添加为远程分支并获取它:

$ git remote add bar ../bar
$ git remote update

根据您当前的分支,在baz存储库中创建一个新的分支foo

$ git checkout -b baz

somebranch存储库中的分支bar合并到当前分支中:

$ git merge --allow-unrelated-histories bar/somebranch

(在git版本2.9之前不需要--allow-unrelated-histories


28
投票

更新了“真实”命令:

从您的repo目录开始,确保您的工作副本是干净的(没有更改,添加或删除文件)。


建立一个新的分支:

git checkout -b <my-branch>

添加辅助遥控器,然后获取它:

git remote add <repo-name> [email protected]:xxx/<repo-name>.git
git remote update

在当前分支中合并其中一个分支:

git merge <repo-name>/<their-branch>


如果你不知道你想要哪个<their-branch>,那就去master

如果您确定要接受所有远程更改并避免冲突(覆盖您的更改),则可以在最后一步中将-X theirs指定为git merge的选项。

如果你想将它添加到一个子目录中,那么你可能应该使用git submodules


1
投票

使用来自larsks的指南,我能够使用SourceTree完成此操作。

  1. 在目标存储库中创建了一个分支
  2. 通过点击“设置”按钮并添加源存储库,将源存储库添加为远程存储库。
  3. 两个存储库中的分支现在显示在分支列表中。我使用合并工具将源存储库中的分支合并到我的新目标存储库的分支。
  4. 使用SourceTree或我的IDE解决了任何冲突
  5. 提交我的分支中的更改。
  6. 使用“设置”按钮从远程列表中删除源存储库。
© www.soinside.com 2019 - 2024. All rights reserved.