我很想了解发生了什么。我们创建了一个 git 分支,工作完成后我们创建了一个 PR,一切顺利。然后在本地我将分支更改为master并再次开始工作。然后我意识到 PR 已将所有提交“删除”,现在 master 等于创建的分支!我们在 BitBucket 中有一个设置,禁止对 master 分支进行任何更改,我想知道它发生了什么以及如何发生。
根据评论更新:
Prevent changes without a pull request?Shchukin, Petr remotely merged the pull request from xreg-3170/Link-foreign-key-transfer-institution-mapping-and-sis-integration-table-by-grantee-tenantId to master我是如何远程合并那个分支的?这看起来像是快进。如果分支是 master 的简单后代,Git 将选择这种合并策略。无需合并。
例如,假设您的存储库如下所示。
A - B - C - D [master]
\
E - F - G [branch]
Run Code Online (Sandbox Code Playgroud)
当您将分支合并到主分支时,不需要合并。Git 只是将 master 移动到分支所在的位置。
$ git merge branch
A - B - C - D - E - F - G [master]
[branch]
Run Code Online (Sandbox Code Playgroud)
Bitbucket 将此作为合并策略提供。这可能是默认的。
我更喜欢禁止快进并始终需要合并提交。这清楚地表明工作是作为一个单元完成的,并且它提供了一个记录 PR 和问题 # 供以后参考的地方。
$ git merge --no-ff
A - B - C - D --------- M [master]
\ /
E - F - G [branch]
Run Code Online (Sandbox Code Playgroud)
然后我意识到 PR 已将所有提交“删除”......
我没有使用过 BitBucket,但这是我的猜测。由于 master 和 PR 分支现在处于同一提交,因此没有差异。BitBucket 正在传达这一信息,因为之前的差异已被“删除”。
BitBucket 知识库如何查找拉取请求更新中所有添加或删除的提交?这可能有助于验证发生了什么。