如何用git覆盖不同本地分支的远程分支

时间:2016-09-08 11:10:42

标签: git

我有一个远程分支,它是pullrequest的基础。

我主要在不同的分支上工作,但现在应该替换旧的分支。

我尝试做git push remote oldBranch -f,但只将我最新的本地oldBranch推送到git服务器而不是当前分支 - 无论我目前在哪个分支。

如何用本地分支替换远程分支?

编辑: 如果有其他人感兴趣,这就是我的工作方式:

git checkout oldBranch
git branch -m 'oldBranchToBeReplaced'
git checkout newBranch
git branch -m oldBranch
git push myrepo oldBranch -f

2 个答案:

答案 0 :(得分:39)

您可以使用git push的local-name:remote-name语法:

git push origin newBranch:oldBranch

这会推送newBranch,但在原点上使用名称oldBranch

因为oldBranch可能已经存在,所以你必须强迫它:

git push origin +newBranch:oldBranch

(我更喜欢+而不是-f,但-f也可以使用

要删除远程端的分支,请按下“空分支”,如下所示:

git push origin :deleteMe

答案 1 :(得分:0)

来自:https://deltacloud.apache.org/send-pull-request.html

 $ git checkout -b my branch
  Coding your changes
 $ git commit -m "Commit message"
  

推动您的工作

     

更新原始回购   这将避免可能的合并冲突和应用补丁的问题。

$ git checkout master
$ git pull
  

推到你的前叉。

 $ git checkout my_work_topic
 $ git rebase -i master (Tip: You can rename/squash commits at this point)
 $ git push origin my_work_topic

发出拉请求

  

导航到您的forked Github存储库   例如:https://github.com/your username / deltacloud-core.git   单击“拉取请求”选项卡   (提示:您可以使用集线器自动执行此步骤)   有关使用拉取请求的更多详细信息,请参阅:官方GitHub帮助For Using Pull Request