Bitbucket不显示最近的提交记录,但是提交记录仍然存在。

14
我们已经在同一个Bitbucket仓库中工作了近三年。我们有一个用于生产的主分支,一个用于测试的develop分支和很多功能分支。今天我想创建一个拉取请求以合并到develop分支,但在PR视图中我收到了消息:“[分支]上没有不在develop分支上的提交”。然后,在提交概览页面中,有很多提交丢失了。Develop分支似乎根本没有提交,一些功能分支的提交也丢失了,而对于其他分支,则包含所有提交。
虽然管道成功运行了,如果我点击我的最新提交的提交哈希(在管道视图中),它会显示我最新的提交以及我之前推送的所有更改。 Bitbucket内部的源代码也反映了这些更改,而master和develop缺少这些更改(换句话说,肯定有提交尚未在develop上)。
最后,像git loggit reflog这样的命令还显示了所有分支的所有更改。
目前,这正阻止我们推出相当多的更改,我找不到任何关于解决方案(或原因)的信息,因此任何帮助将不胜感激。
编辑:我刚刚将另一个分支推送到远程,神奇地,所有提交都重新出现了,包括其他分支的提交。不知道逻辑是什么,但问题已经自己解决了。

1
有人从旧仓库向 Bitbucket 进行了强制推送吗? - Dai
不会的,即使他们这样做了,也会发生在另一个分支上,因为我是唯一在这个分支上工作的人(我们只有两个人,我的同事正在完全不同的事情上工作,所以我对此非常确定)。 - Alex
自从VSCode的最新更新以来,我一直面临着类似的问题,所有的配置看起来都很正常。为了让事情像“魔术”一样出现,必须在Web界面上使用标签。https://support.atlassian.com/bitbucket-cloud/docs/repository-tags/ - 这个手动解决了从Bitbucket到VSCode的更新问题。我正在尝试找出如何手动调试推送 - 将来会尝试他们的Bitbucket扩展程序,而不是使用git。我已经在一个小团队中使用Bitbucket一年多了 - 这是我第一次遇到这个问题,但它已经持续了几天,浪费了我们很多时间。 - Alexandre Jean
1
更新 - 我怀疑这是一个Bitbucket问题 - 现在收到了消息“嗯...找不到那个文件或目录。返回上一页并尝试另一个。” 在一个完全有效的分支上。 - Alexandre Jean
我遇到了类似的情况。我在同一分支上有两个提交,但拉取请求只显示了第一个提交,没有显示第二个提交。这篇文章中的任何建议都没有奏效。最终我是删除了该拉取请求并创建了一个新的请求才解决了问题。 - FernandoZ
7个回答

26

我在Bitbucket中遇到了一个类似的问题,这是由于最近迁移SVN库引起的。我们主分支的所有提交都显示在 git log 中,但却没有在Bitbucket网页中显示。

对我们来说,根据OP所指出的,解决方案是创建一个至少有一次提交记录的虚拟分支,然后将其删除:

git checkout -b erase-me
touch erase.me
git add erase.me
git commit -am "erase me"
git push -u origin erase-me
git checkout master
git branch -D erase-me
git push origin --delete erase-me

之后,所有在Bitbucket中的分支上提交记录神奇地全部正确地列出。


刚好遇到了同样的问题,你解决了我的难题。谢谢! - Sander Roest
你救了我。你绝对是传奇。 - plumbus_bouquet
我不知道它为什么能够工作,但它神奇地就是能够工作。 - Asad Ali Choudhry

25

我遇到了同样的问题,但我找到了一个更简单的窍门:

# run the command below:
git commit --amend -a
# this will open your default git editor, just save and exit without any change.
# then run:
git push -f
# this will "refresh" Bitbucket because the commit hash changed

真的很烦人。


我可以确认这对我有效。我突然发现在BB网站上,两年的提交消息神秘地消失了,而Atlassian社区上也没有任何帮助。 - zehawk
这也帮助了我。不知道为什么一开始会发生这种情况。 - Nilan Saha
1
仍然在2021年工作:/ 我想知道Atlassian正在做什么。 - rogeliorv
运行得非常顺畅! - Devmasta
2
这个方法在2022年对我也起作用了。 - Jason Roman
2023年,问题仍然存在。这仍然有效! - undefined

6

我也遇到了同样的问题,最后创建了一个新分支并将其推送到Bitbucket上,然后所有的提交记录都再次出现了。由于缺失提交记录,我们无法进行拉取请求,这真是相当令人恼火。


1

我曾经遇到过类似的问题,与我的git配置文件中设置的电子邮件地址与Bitbucket上设置的电子邮件地址不匹配有关。我运行了 $ git config -l 并将其与Bitbucket进行比对以排除此问题。


1
  1. 从Bitbucket网站上删除分支(远程分支)
  2. 再次创建同名的分支
  3. 推送您的本地分支

以上步骤解决了我的问题。


0

在BitBucket中出现了类似的问题。提交到拉取请求创建的更改显示在差异中,但是当推送新更改时,它们在PR差异中不可见,但提交在分支概述中显示。

解决方案是拒绝PR并重新打开它。这个解决方法保留了所有审阅者的批准(但不包括needs-work标志)。此链接中添加了一个解决方案 https://confluence.atlassian.com/bitbucketserverkb/pull-requests-in-bitbucket-server-are-not-updated-after-pushes-to-source-or-target-branch-779171762.html


0

以上方法都没对我起作用。解决办法是在Visual Studio(Git -> 管理分支)中查看我缺失的提交和更改,而不是在Bitbucket上查看。之后,我便能够进行进一步的更改并稍后将它们推回Bitbucket。顺便说一下,当与其他分支比较文件时,Bitbucket仍然显示不正确的提交,但单独的文件本身最后一个提交看起来很好。Visual Studio 允许我加载和合并更改,然后我只需要确认这些文件在推回Bitbucket后在Bitbucket上看起来也没问题即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接