Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将git回购合并到另一回购的分支_Git - Fatal编程技术网

将git回购合并到另一回购的分支

将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 <

给定回购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 <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来实现这一点

  • 在目标存储库中创建了分支
  • 通过点击设置按钮并添加源存储库,将源存储库添加为远程存储库
  • 来自这两个存储库的分支现在显示在分支列表中。我使用合并工具将源存储库的分支合并到新目标存储库的分支
  • 使用SourceTree或my IDE解决了所有冲突
  • 提交我的分支中的更改
  • 使用“设置”按钮从远程列表中删除源存储库

  • 由于git 2.9,您可能需要向git merge命令添加
    ——允许不相关的历史记录。任何人都可以用真实的例子(如适当的链接等)来编辑这个吗?我得到了大量的合并冲突。无论如何,你可以强制合并到一个新的分支?你救了我一天!我错过了
    git remote update
    命令。很好的答案,加上公认的答案……帮助我完成了一个大的合并,这与上面的命令序列相对顺利。谢谢。关于“现实生活”的另一个建议是:使用一个IDE来帮助git合并。例如,VS代码的Git镜头允许您并排比较冲突,并选择新的、旧的或两者兼而有之。大大简化了合并冲突。:)如果安装了自制
    hub
    命令,则可以执行
    hub合并
    。但它会失败,除非您事先执行
    git remote add upstream.git
    。我不知道远程名称是否需要在上游。