2014-10-08 193 views
0

我有一個master分支和一個new分支。當我開始在new分支上工作時,我忘了提交最新的提交,並在master後面提交了20個提交。我還在new分公司進行了一些更改。git rebase分支後推新提交

但是,我能夠做更新我new分支從master分支對方提交:

git checkout master 
git pull --rebase 
git rebase master newBranch 

然後我解決了這個矛盾,我new分公司與前提交更新。

問題是,這些早期的提交只反映在我的本地版本的new分支。我在打字時看到這個git log。當我查看遠程版本時,它仍然有舊版本,因爲我沒有提交/推送這些舊的提交。當我檢查git status時,沒有什麼可提交的。

我怎樣才能讓新的分支遠程獲取這些舊的提交/更改,而不僅僅是本地?換句話說,遠程版本如何與我的本地版本的新分支具有相同的日誌/歷史記錄?

+0

我不確定你想要達到什麼目的。你只是想把*新的變化推到服務器上嗎?您是否想要將這些更改合併到* master *併發布這些更改?你想把什麼推到你的遙控器? – 2014-10-08 10:09:48

+0

我已經把主從更改合併到我的本地新分支。但是這些變化比我在新的最新的承諾更舊。我如何推送這樣的新分支的遠程版本包含來自主的舊提交? – 2014-10-08 11:56:59

+0

你是否試圖推他們? – 2014-10-08 13:02:48

回答

0

假設你有一個主分支和一個新分支(你有所有提交的地方)是由主分支創建的。現在如果主分支沒有中央存儲庫中的所有提交,那麼我們需要將從服務器到主分支的更改以及從主服務器到新的更改。 然後,我們需要將新的本地提交到主,然後從那裏進行推送。 下面的步驟不上面所說的:

git checkout master 
git pull 
git checkout new 
git rebase master 
git checkout master 
git merge new 
git push 
0

你要完成可能是一個有點「危險」是什麼。你有遠程分支:

  • 產地/主
  • 產地/新

和地方分支機構

當基礎重建的地方新的b牧場到最新的起源/主提交,你將會重寫歷史。對於本地工作來說,這不是問題。如果您的提交先前已被推送到遠程,並且其他開發人員可能從中派生出工作,則可能會導致大量頭部劃痕,因爲現在至少有兩個版本的相同更改。

如果你是100%肯定,沒有人任何衍生作品,你可以把您當地的新分支服務器

git push origin new 

這個意願,但是,失敗,因爲提交你想推的是而不是從前一個起源/新提交的快進合併。您需要強制推送:

git push origin new -f 

不過,服務器可能會阻止您執行此推送。