鉴于repo Foo和repo Bar。我想将Bar与Foo,但合并到一个名为baz
的单独分支中。
git checkout -b baz
< =把Bar repo放在这里。
答案 0 :(得分:157)
您无法将存储库合并到分支中。您可以将另一个存储库中的分支合并到本地存储库中的分支。假设您有两个存储库,foo
和bar
都位于当前目录中:
$ 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做到这一点。