将git回购合并到另一回购的分支
给定回购Foo和回购Bar。我想将Bar与Foo合并,但只合并到一个单独的分支中,称为将git回购合并到另一回购的分支,git,Git,给定回购Foo和回购Bar。我想将Bar与Foo合并,但只合并到一个单独的分支中,称为baz git开关-c baz您不能将存储库合并到分支中。您可以将另一个存储库中的分支合并到本地存储库中的分支。假设您有两个存储库,foo和bar都位于当前目录中: $ ls foo bar 更改为foo存储库: $ cd foo 将条形图存储库添加为远程存储库并获取它: $ git remote add bar ../bar $ git remote update git remote add <
baz
git开关-c baz
您不能将存储库合并到分支中。您可以将另一个存储库中的分支合并到本地存储库中的分支。假设您有两个存储库,foo
和bar
都位于当前目录中:
$ ls
foo bar
更改为foo
存储库:
$ cd foo
将条形图
存储库添加为远程存储库并获取它:
$ git remote add bar ../bar
$ git remote update
git remote add <repo-name> git@github.com:xxx/<repo-name>.git
git remote update
在foo
存储库中根据当前分支创建新分支baz
:
$ git switch -c baz
将bar
存储库中的分支somebranch
合并到当前分支中:
$ git merge --allow-unrelated-histories bar/somebranch
(git 2.9版之前不需要允许不相关的历史记录)使用“真实”命令更新:
从您的repo目录开始,确保您的工作副本是干净的(没有更改、添加或删除任何文件)
创建一个新分支:
git签出-b
添加辅助远程设备,然后获取它:
$ git remote add bar ../bar
$ git remote update
git remote add <repo-name> git@github.com:xxx/<repo-name>.git
git remote update
git远程添加git@github.com:xxx/.git
git远程更新
在当前分支中合并其中一个分支:
$ git merge --allow-unrelated-histories bar/somebranch
git-merge/
如果你不知道你想要哪个
,那就去master
如果确定要接受所有远程更改并避免冲突(覆盖您的更改),则可以在最后一步中指定-X他们的更改
作为git merge
的选项
如果您想将其添加到子目录中,那么您可能应该使用larsks提供的指南,我可以使用SourceTree来实现这一点
由于git 2.9,您可能需要向git merge命令添加
——允许不相关的历史记录。任何人都可以用真实的例子(如适当的链接等)来编辑这个吗?我得到了大量的合并冲突。无论如何,你可以强制合并到一个新的分支?你救了我一天!我错过了git remote update
命令。很好的答案,加上公认的答案……帮助我完成了一个大的合并,这与上面的命令序列相对顺利。谢谢。关于“现实生活”的另一个建议是:使用一个IDE来帮助git合并。例如,VS代码的Git镜头允许您并排比较冲突,并选择新的、旧的或两者兼而有之。大大简化了合并冲突。:)如果安装了自制hub
命令,则可以执行hub合并
。但它会失败,除非您事先执行git remote add upstream.git
。我不知道远程名称是否需要在上游。