【发布时间】:2019-01-31 21:48:48
【问题描述】:
我最近在一家新公司工作,团队选择将新更改重新定位到开发分支,而不是将更改合并到其中。我以为我理解它是如何工作的,但我经常遇到问题,以至于我不再确定我理解并且无法弄清楚我做错了什么。
典型场景:
- 如果“开发”,我会为我的功能创建一个分支。
- 我将更改提交到我的功能分支。当需要合并到开发中时,我已经在我的分支上提交了 3 次提交,并且在开发中已经提交了 5 次
- 我在源代码树中右键单击“开发”,然后选择将我的更改重新定位到它的选项。
- 没有冲突。 git 图看起来像预期的那样正确,除了我的分支说我现在领先 5 和落后 3(上面的数字),这显然阻止了我推动。
我不明白我做错了什么,而且我读到的关于 rebase 如何工作的每一个解释似乎都没有表明我错了。我这边的代码看起来也正确并且可以编译。
【问题讨论】:
-
你能从命令行试试吗?也许可以看到:stackoverflow.com/questions/21111004/…
-
重新定位到
origin/develop可能会更好。develop是一个本地分支,它是您在该分支上的最后一次本地工作离开它的地方;origin/develop是您上次讨论的origin存储库上的任何分支,无论是获取或推送,还是包含获取的便利操作之一,例如克隆或拉取。 -
如果你已经推送了,Rebaseing 总是会说“# behind, # ahead”。你正在改变历史。
-
@evolutionxbox 我认为这就是答案。所以为了rebase,我必须还没有推送我的提交。这是有道理的
-
你可以随时变基,但如果你已经推送了那个分支,你需要强制推送变基更新。
标签: git atlassian-sourcetree rebase git-rebase