我有一个长期运行的本地功能分支,我定期与主人一起挤压和变基,以使其在本地更新。
完成后,我希望我的功能在一个主要的压缩提交之上。
但是,我担心在出现硬件问题时会丢失我的工作,因此我将其推送到github上的新功能分支作为预防措施。由于这样做,我不确定如何使我的功能分支保持最新,因为它已被推送(我宁愿不合并主创建合并提交的更改)。
我是唯一使用此功能分支的开发人员。因此,我并不担心在已推动的分支上重写历史记录。是否可以将其他提交推送到我的远程功能分支,当我完成该功能时压缩该分支,然后将其重新绑定到主服务器上?或者,由于分支已经公开,git会抛出一些关于分支分歧的错误吗?
或者,我认为当我的工作完成后,我可以简单地解开远程功能分支(因此我的本地分支不再与远程分支有关联),压缩本地功能分支中的提交,然后在master上本地修改我的功能分支。
答案 0 :(得分:3)
是否可以将其他提交推送到我的远程功能分支,在我完成该功能后压缩该分支,然后将其重新绑定到主服务器上?
是的,是的,是的。既然你说你不怕重写这个分支的历史,你可以随心所欲地做任何事情。
或者,由于分支已经公开,git会抛出一些关于分支分歧的错误吗?
Git没有公共和私人分支的概念。 您可以公开或私下使用分支机构, Git不会抱怨这个。
当你在master
之上重新分支你的分支时,
您基本上从master
中的时间轴分支重放您的提交。
如果在此之后master
中有提交,
并且在那之后你在功能分支中提交了,
然后master
你的分支已经分歧了。
如果你变装,可能会有冲突,
取决于两个分支的变化。
总之,您可以在未记录的功能分支中执行任何操作,然后在master
之上进行rebase。
当然,取决于你做什么,
变基可能更容易(很少或没有冲突)或更难(很多冲突)。
经常变换,这可能是件好事,
那样你一点一点地发现冲突,
而不是同时发生很多冲突。