【问题标题】:Merge two remote branches in git在git中合并两个远程分支
【发布时间】:2014-07-31 13:56:10
【问题描述】:

编辑

让我解释一下,我想合并两个同名但远程不同的 git 存储库。

也就是说,我在 git 中托管了一个 repo_name,在 repo_name_a 的分支名称下,我在分支名称下向 git 添加了另一个分支:repo_name_b

现在,要合并这些,我该怎么办?

【问题讨论】:

  • 我对你的术语感到困惑。一个存储库中可能有多个分支和分叉。两个仓库一般是两个完全独立的项目,在 github 上有完全不同的 home 和完全不同的历史,一般不能合并。
  • @akgill 很抱歉造成混乱。问完这个问题,我明白了一些。但是,现在我被困在最后一部分。问题是,我只有一个仓库,这个仓库现在有 2 个分支。掌握和测试。在对测试进行了许多更改后,我想将它与 master 合并。这就是我被困的地方。顺便说一句,感谢您的出色回答
  • 没问题。我的答案的后半部分应该给你两种方法可以将测试合并到master。
  • 嗯,这就是我的想法,当我执行git checkout test_repo git merge master 时,我收到消息already upto date,而它们显然是不同的状态。
  • 是的,那是因为 test_repo 已经包含了 master 包含的所有东西(因为它是从 master 分支出来的)。你会注意到下面,我建议检查 master 并在 test_repo 中合并。相反的顺序。 :)

标签: git github merge


【解决方案1】:

我在下面给出的答案是针对提问者问题的先前版本。现在这似乎是一个完全不同的问题。这可能不相关。

您所描述的基本上是 git 的使用方式,附加功能/工作在一个分支中完成,然后在完成/审查后合并回 master。

git clone https://github.com/master_repo/master_repo

是将该存储库的副本复制到本地计算机的正确命令。然后创建一个分支来工作,

git checkout -b test_repo 也是正确的。

但是,当您在新分支中工作时,您将多次在该分支中执行git add <name of file>git commit,然后当您想要更新远程存储库的测试分支历史记录时,你会做的

git push origin test_repo

这意味着将我的东西推送到 test_repo 分支中的原点。

如果你独自一人在一个 repo 中工作,那么你想在本地机器上合并到 master,最简单的方法是

git checkout master git merge test_repo

您可能不会以合并冲突告终,但如果这样做,您将解决它们。然后从你本地的 master 分支,你可以做

git push origin master 更新远程分支。

如果您正在与合作者一起开展项目,您可能希望使用 github 网站界面创建从 test_repo 分支到 master 分支的“拉取请求”。然后,您的协作者可以审查您的更改并提出改进建议,并最终负责将您的分支合并到 master。

如果您自己在做某事,您也可以这样做。创建一个拉取请求,其中包含您要求将哪些更改拉回主控的高级描述,然后您可以在 Web 界面上将拉取请求合并到主控。这是一种更安全、更好的方法,因为它最终是您希望使用 git 协作处理项目的方式,并且它留下了一个很好的描述性历史,记录了所有要掌握的合并完成的内容。

如果您选择这样做,那么一旦合并了一个分支,您就可以远程删除它并运行 git remote prune origin本地删除你的本地分支(以及所有已远程删除的本地分支。)

【讨论】:

    猜你喜欢
    • 2013-05-23
    • 1970-01-01
    • 2015-03-25
    • 2011-12-18
    • 1970-01-01
    • 2013-11-21
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    相关资源
    最近更新 更多