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

Ale*_*lex 6 git commit bitbucket

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

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

最后,命令喜欢git loggit reflog显示所有分支的所有更改。

这目前阻止我们推出相当多的更改,而且我在任何地方都找不到有关解决方案(或原因)的任何信息,因此我们将不胜感激。

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

Mat*_*Pag 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
Run Code Online (Sandbox Code Playgroud)

真烦人

  • 这在 2022 年对我也有效 (2认同)

小智 8

刚刚在 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
Run Code Online (Sandbox Code Playgroud)

在那之后,神奇的是,我们在 Bitbucket 的所有分支中都正确地列出了所有提交。


小智 6

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


小智 1

我遇到了类似的问题,与 git 配置文件中设置的电子邮件地址与 Bitbucket 上设置的电子邮件地址不匹配有关。我会运行 $ git config -l 并对照 Bitbucket 检查它以排除它。