【问题标题】:How to merge one remote branch into another remote branch?如何将一个远程分支合并到另一个远程分支?
【发布时间】:2014-06-13 17:05:35
【问题描述】:

我想知道如何将一个远程分支合并到另一个远程分支,并在应用合并后立即删除前一个分支。

【问题讨论】:

  • 另一个远程分支将来自同一个远程?
  • 是的。完全一样的遥控器。

标签: git


【解决方案1】:

您可以将它们拉到本地。进行合并并推送它。之后要删除多余的分支,只需运行

git push origin :<branch_to_delete>

比如要删除一个分支A

git push origin :A

【讨论】:

    【解决方案2】:

    据我了解,您有一个远程 foo,包含 branch_1branch_2。 首先,我们不能远程进行合并操作。 我们必须跟踪远程存储库,在本地执行我们想要的操作(例如合并分支),然后将我们的新快照推送到服务器。

    即:

    • git clone [repo_adress]

    你在 master 分支上。

    • 然后您可以结帐或创建其他分支并在其中完成您的工作。

    现在假设我们有两个分支 branch_1branch_2。您想将 branch_1 合并到 branch_2,然后删除 branch_1

    您结帐到 branch_2,然后将 branch_1 与其合并:

    $ git checkout branch_2
    $ git merge branch_1
    

    从那里要么合并是顺利的,要么你有冲突。 合并完成后,您可以通过执行以下操作删除合并的分支,即 branch_1

    $ git branch -d branch_1
    

    然后推动你的工作:

    $ git push
    

    如果遥控器上不存在 branch_2,则必须创建它:

    $ git push -u foo branch_2
    

    请注意,在本地删除 branch_1 并不会远程删除它(考虑到它存在于远程)。 为此,我们将对 git 说:“不向我要删除的分支推送任何内容”,即:

    $ git push remote_name :branch_name
    

    读起来像 git remote push remote_name "nothing":branch_name。

    现在有什么办法可以自动完成吗?

    我不知道(尽管我会调查合并后的“git hook”),但我不确定我们是否应该希望它。在远程删除分支有些危险。手动执行此操作是确定我们在做什么的好方法。

    【讨论】:

    • 那么 Bitbucket 上的“合并”功能是如何工作的?审阅者审查 PR 更改,批准后他只需单击“合并”,分支就会远程合并。如果我刷新本地 SourceTree,我会看到来自远程的传入更改。
    • 是的。你说得对。在我回答的时候,我专注于 git 存储库端的引擎盖下“可能”发生的事情,并将其作为“可能”的答案提出。对这个问题的更实际的答案就像你建议的那样。您在 repo 端创建一个 MR/PR 并选中“合并后删除分支”框。谢谢提出问题! @TejasChandrashekhar
    【解决方案3】:

    您可以使用以下命令切换到要在其中合并另一个分支的跟踪分支(代表您的远程分支的本地分支

    git checkout origin/name_of_your_branch
    

    然后合并另一个远程分支

    git merge origin/brach_name_you_wanted_to_merge
    

    之后,如果发生任何冲突,请解决它。然后提交并推送。

    现在checkout 到您当地的分支机构。通过以下命令

    git checkout name_of_your_brnach
    

    之后使用git pull 命令拉取原点。就是这样。

    【讨论】:

    • 为可能不知道的人消除歧义:..您提到“您可以切换到远程分支”这是不准确的:这不是远程分支/它仍然是正在跟踪的本地分支远程分支,需要更新网络操作符,例如拉取、获取或克隆; .. 您拥有的所有分支都是 local (即使是跟踪远程分支的 tracking 分支仍然是本地的) - 所以您在本地分支或跟踪分支之间切换的任何结帐 - 请参阅这里stackoverflow.com/questions/4693588/…
    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2013-05-03
    • 2015-08-08
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多