我仍在使用Git和Sourcetree,并且无法理解我的主分支是如何在我当前的分支机构后面2,它声称是主分支。
当我尝试将主服务器合并到我当前的分支机构时,它说它是最新的。
任何人都可以向我解释我是如何进入这种情况的,更好的是,我如何能掌握最新的大师并从中工作?
谢谢
编辑:所以我按照下面的要求做了,检查主分支并拉出来,除了最近的几次提交似乎已经消失之外,它似乎已经更新了。有谁知道为什么?
答案 0 :(得分:1)
这意味着master
是origin/master
后面的2次提交。您看到origin/master
在master
提交之后的合并提交中;那是其中的一个。另一个是在#34;另一方面"合并("设置捆绑...")。
你是如何到达这里的,其他人将更改推送到掌握(以合并其他分支的形式)。您已从origin
获取了更改 - 此时您的本地分支引用origin/master
已更新 - 但您尚未将它们合并(或拉入)master
您可以通过查看master
并与master
合并(而不是origin/master
)来更新master
;或者通过在主人身上做pull
(假设跟踪以预期的方式设置,这可能是因为你正在获得预期的" 2落后"消息)。还有其他方法,但那些是对这种情况最有意义的方法。
<强>更新强>
看来,当你这样做时,一些提交似乎从你的显示器上消失了。这很可能意味着您的显示器设置为显示当前检出的历史记录。 (这将是运行git log
的默认设置;我不确定SourceTree如何确定要显示的内容,因为我几乎只使用命令行。从屏幕截图中可以看到有下降的信息。 -down控件位于提交列表上方,可以控制正在显示的内容。)
现在你想要小心一点,因为我看到你现在已经有了#34;未提交的更改&#34;。与提交(非常难以真正输)相比,git没有做任何事情来保护您免于丢失这些未提交的更改。因此,在进行任何进一步检查之前,您应该确定您知道这些更改是什么以及是否应该保留这些更改。如果它们应该是,您应该在进行进一步检查之前提交或存储它们。 (在命令行中,git会拒绝执行会丢失这些更改的结帐;但我再也无法说出SourceTree会做什么。)
无论如何,提交像#34; Fixing Log Out Bug&#34;似乎是在其他一些分支上创建的;如果你检查那个分支,你应该看到那些提交。或者,如果您更改显示设置以显示该分支(或--all
),您应该能够看到它们。
您可以使用reflog查看您已检出的内容的历史记录。据推测,主要reflog中的第3个条目将是您在问题中创建第1个屏幕截图时检查的内容(除非您已经完成了我所知道的其他检查(或类似操作))。