Git rebase推送功能分支

时间:2016-11-25 19:42:40

标签: git

我有一个长期运行的本地功能分支,我定期与主人一起挤压和变基,以使其在本地更新。

完成后,我希望我的功能在一个主要的压缩提交之上。

但是,我担心在出现硬件问题时会丢失我的工作,因此我将其推送到github上的新功能分支作为预防措施。由于这样做,我不确定如何使我的功能分支保持最新,因为它已被推送(我宁愿不合并主创建合并提交的更改)。

我是唯一使用此功能分支的开发人员。因此,我并不担心在已推动的分支上重写历史记录。是否可以将其他提交推送到我的远程功能分支,当我完成该功能时压缩该分支,然后将其重新绑定到主服务器上?或者,由于分支已经公开,git会抛出一些关于分支分歧的错误吗?

或者,我认为当我的工作完成后,我可以简单地解开远程功能分支(因此我的本地分支不再与远程分支有关联),压缩本地功能分支中的提交,然后在master上本地修改我的功能分支。

1 个答案:

答案 0 :(得分:3)

  

是否可以将其他提交推送到我的远程功能分支,在我完成该功能后压缩该分支,然后将其重新绑定到主服务器上?

是的,是的,是的。既然你说你不怕重写这个分支的历史,你可以随心所欲地做任何事情。

  

或者,由于分支已经公开,git会抛出一些关于分支分歧的错误吗?

Git没有公共和私人分支的概念。 您可以公开或私下使用分支机构, Git不会抱怨这个。

当你在master之上重新分支你的分支时, 您基本上从master中的时间轴分支重放您的提交。 如果在此之后master中有提交, 并且在那之后你在功能分支中提交了, 然后master你的分支已经分歧了。 如果你变装,可能会有冲突, 取决于两个分支的变化。

总之,您可以在未记录的功能分支中执行任何操作,然后在master之上进行rebase。 当然,取决于你做什么, 变基可能更容易(很少或没有冲突)或更难(很多冲突)。 经常变换,这可能是件好事, 那样你一点一点地发现冲突, 而不是同时发生很多冲突。