Bitbucket没有显示最近的提交,但提交仍然存在



我们已经在同一个Bitbucket存储库中工作了近三年。我们有一个用于生产、开发和测试的主分支,然后是大量的功能分支。今天,我想创建一个pull请求以合并到develop中,但在PR视图中,我得到了消息"没有在develop中的[分支]上的提交"。然后,在提交概述页面上,缺少了许多提交。Development似乎根本没有提交,对某些功能分支的提交丢失,而对其他分支的所有提交都存在。

不过,管道确实成功运行了,如果我点击最近提交的提交哈希(在管道视图中(,它会显示我最近的提交,以及我之前推送的所有更改。Bitbucket中的源代码也反映了这些变化,而master和develop缺少这些变化(换句话说,肯定有一些提交还没有进行开发(。

最后,像git loggit reflog这样的命令也显示了所有分支的所有更改。

目前,这使我们无法推出相当多的更改,我在任何地方都找不到任何关于解决方案(或原因(的信息,因此我们将不胜感激。

编辑:我刚刚将另一个分支推到远程,神奇的是,所有提交都重新出现了,包括其他分支的提交。不知道逻辑是什么,但问题已经自行解决了。

刚刚在Bitbucket中遇到了一个类似的问题,该问题涉及最近迁移的SVN存储库。我们主分支的所有提交都显示在git log中,但没有显示在Bitbucket web中。

正如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中的所有分支中。

我遇到了同样的问题,我发现了一个更简单的技巧:

# 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

真烦人

这里也有同样的问题,只是创建了一个新分支并将其推送到Bitbucket,所有提交都再次出现。由于缺乏提交,我们无法进行拉取请求,这非常令人讨厌。

我遇到了一个类似的问题,那就是我的git配置文件上设置的电子邮件地址与我的Bitbucket上设置的邮件地址不匹配。我会运行$git-config-l,并将其与Bitbucket进行比较,以排除这种情况。

  1. 从bitbucket web删除分支(远程分支(
  2. 再次创建同名分支
  3. 推动您的本地分支机构

以上步骤解决了我的问题

以上这些对我都不起作用。它的作用是查看我丢失的提交和更改,而不是在Bitbucket上,而是在Visual Studio(Git->管理分支(上。然后,我可以做进一步的更改,稍后将它们推回到Bitbucket。顺便说一句,在将文件与其他分支进行比较时,Bitbucket仍然显示不正确的提交,但单个文件本身与上次提交相比看起来很好。Visual Studio允许我加载和合并更改,然后我只是确认文件在Bitbucket中被推回到那里后看起来不错。

开始在BitBucket中遇到类似问题。提交以创建拉请求显示在diff中,但当推送新更改时,它们在PRdiff中不可见,但提交显示在分支概述中。

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

最新更新