2016-09-08 83 views
4

我有一个远程分支,它是pullrequest的基础。如何用git覆盖具有不同本地分支的远程分支

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

我试图做一个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 

回答

20

可以使用local-name:remote-name语法混帐推:

git push origin newBranch:oldBranch 

这推动newBranch,但使用原产名称oldBranch

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

git push origin +newBranch:oldBranch 

(我更喜欢+代替-f,但-f会的工作,太)

要遥控器上删除一个分支推一个“空分支”就像这样:

git push origin :deleteMe 
+2

+1好答案。注意:'+'和'--force'之间的唯一区别是同时推送多个分支时。 '-f'会强制所有分支,而'+'只会强制它所连接的refspec,所以我认为'+'通常是一个更好的习惯,尽管只推一个分支并没有什么区别,在没有指定本地分支名称的默认推送上。 –

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 

问题拉入请求

导航到分叉Github上库 例如:https://github.com/your的用户名/ deltacloud-core.git 单击拉入请求标签 (提示:可以使用集线器自动执行此步骤) 有关使用请求请求的更多详细信息,请参阅:官方GitHub帮助For Using Pull Request

+2

谢谢。但我不需要做任何编码,我只需要用现有的代码替换分支 –

+0

您只需执行checkout -b“YourBranchName”,然后在该分支中工作......然后再回到主设备上结账主人 – Tschallacka

+2

,但我不需要在该分行工作。我需要用不同的分支完全替换分支及其历史记录 –

相关问题