我是git新手
我在本地创建了一个名为orm
的分支,并在检查github上的分支时将其推送到github。
这表示this branch is 1 commit ahead of master
,这是有意义的,但是当我创建pull请求并确认pull将其与master分支合并时,状态更改为
现在写的是this branch is 1 commit behind master
如果我点击它要求我创建一个拉请求合并主到orm分支
如果我这样做它会回到this branch is 1 commit ahead of master
它似乎永远不会结束...所以我的问题是,这是我应该关心的事情吗?!我的意思是,显然我应该创建一个1 commit ahead if master
的拉请求,当我把我的代码推到github...但我应该忽略this branch is 1 commit behind master
,它显示在拉请求确认?
3条答案
按热度按时间omjgkv6w1#
但是我应该忽略“这个分支是主分支之后的1个提交”吗
**tl;dr:**可能,是的,如果你不想调整你的工作流程,你可以忽略它。
详细数据:
为了确定你是否可以忽略它,你需要了解 * 为什么 * 会发生这种情况。当完成一个拉取请求时,有不同的选项。默认选项是创建一个合并提交。在你的例子中,在
master
上创建了一个新的提交,而不是在orm
上,这就是为什么在PR完成后orm
会立即落后一个提交。当这种情况发生时,你可以安全地忽略它。下次你完成从orm
到master
的PR时,你将落后2个提交,下次落后3个提交,以此类推。只要orm
和master
之间的差异没有变化,你就可以安全地忽略它。在某个时候,如果一个不同的分支被合并到
master
中,那么orm
将落后更多的提交,并且差异将不再匹配,这时您应该考虑再次将master
合并回orm
中。其他备注:
1.当completing PRs on GitHub调用“Squash Commits”和“Rebase and merge”时,还有其他合并选项。在你的例子中,你也不需要这些选项,因为在这两种情况下GitHub都会重写提交(即使在不需要重定基的情况下也是如此)。使用这些选项,您的
orm
分支将以1次提前提交和1次滞后提交结束。GitHub目前没有快速-正向合并,这是您在PR完成后使分支保持相同所需的。请考虑以下选项之一来解决您的问题,或者忽略它。1.你真的需要一个长寿命的
orm
分支吗?根据你的团队的分支策略,你可以考虑使用特性分支而不是orm
,每次你开始工作的时候,你可以简单地从最新的master
分支出来,然后那个分支就已经有了所有的合并提交,并且是完全最新的。1.在完成
orm
到master
的PR之后,在本地,你可以考虑把最新的master
合并到orm
中,在你开始添加更多的提交之前把合并提交放到orm
上。注意这和crystal's suggestion把master
拉到orm
中非常相似。是否使用--rebase
标志取决于你自己,并且取决于你是否有其他人与你共享orm
分支。如果你总是在完成orm
到master
的PR之后立即这样做,那么你是否使用rebase应该没有区别。py49o6xq2#
创建拉式请求后,只要基础和主服务器之间的比较为绿色,则一切正常。
通常在我开始开发之前,总是下载最新的代码:
注意:在您的情况下,请将
<branchName>
替换为master。tag5nh1u3#
让我们考虑
orm
分支在master
之后提交的情况。切换到本地
orm
分支这将显示分支之间的计数差异,其中
orm
是master
之后的1
提交这将根据远程
master
分支获取更改并重置本地orm
分支这会将本地
orm
分支更改推送到远程orm
分支刷新github存储库页面,希望您的问题得到解决。
P.S. I personally solved same issue using above steps.
个