【发布时间】:2014-06-13 17:05:35
【问题描述】:
我想知道如何将一个远程分支合并到另一个远程分支,并在应用合并后立即删除前一个分支。
【问题讨论】:
-
另一个远程分支将来自同一个远程?
-
是的。完全一样的遥控器。
标签: git
我想知道如何将一个远程分支合并到另一个远程分支,并在应用合并后立即删除前一个分支。
【问题讨论】:
标签: git
您可以将它们拉到本地。进行合并并推送它。之后要删除多余的分支,只需运行
git push origin :<branch_to_delete>
比如要删除一个分支A
git push origin :A
【讨论】:
据我了解,您有一个远程 foo,包含 branch_1 和 branch_2。 首先,我们不能远程进行合并操作。 我们必须跟踪远程存储库,在本地执行我们想要的操作(例如合并分支),然后将我们的新快照推送到服务器。
即:
你在 master 分支上。
现在假设我们有两个分支 branch_1 和 branch_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”),但我不确定我们是否应该希望它。在远程删除分支有些危险。手动执行此操作是确定我们在做什么的好方法。
【讨论】:
您可以使用以下命令切换到要在其中合并另一个分支的跟踪分支(代表您的远程分支的本地分支)
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 命令拉取原点。就是这样。
【讨论】: