2016-09-08 79 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

,但我不需要在該分行工作。我需要用不同的分支完全替換分支及其歷史記錄 –

相關問題