鉴于repo Foo和repo Bar。我想将Bar与Foo合并,但只能合并到一个名为baz
的独立分支中。
git checkout -b baz
<=把酒吧回购放在这里。
您无法将存储库合并到分支中。您可以将另一个存储库中的分支合并到本地存储库中的分支中。假设您有两个存储库,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
)
更新了“真实”命令:
从您的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
使用来自larsks的指南,我能够使用SourceTree完成此操作。