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

时间:2014-01-25 17:21:11

标签: git

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

git checkout -b baz< =把Bar repo放在这里。

3 个答案:

答案 0 :(得分:157)

您无法将存储库合并到分支中。您可以将另一个存储库中的分支合并到本地存储库中的分支。假设您有两个存储库,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

答案 1 :(得分:19)

更新了“真实”命令:

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

建立一个新分支:

git checkout -b <my-branch>

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

git remote add <repo-name> git@github.com:xxx/<repo-name>.git
git remote update

合并当前分支中的一个分支:

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

如果您不知道自己需要哪个<their-branch>,请转到master

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

如果您想将其添加到子目录中,那么您可能应该使用git submodules

答案 2 :(得分:1)

使用Larsks的指南,我能够使用SourceTree做到这一点。

  1. 在目标存储库中创建了一个分支
  2. 通过点击“设置”按钮并添加源存储库,将源存储库添加为远程存储。
  3. 两个存储库中的分支现在显示在分支列表中。我使用合并工具将分支从源存储库合并到新目标存储库的分支。
  4. 使用SourceTree或我的IDE解决了所有冲突
  5. 在我的分支中进行更改。
  6. 使用“设置”按钮从远程列表中删除源存储库。