2014-10-08 181 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 

不过,服务器可能会阻止您执行此推送。