Bitbucket - 无法查看已合并分支的提交记录

3

我的公司在Bitbucket-Git上托管代码。我们的工作方式是为每个问题创建一个分支,个人在该分支上进行工作。完成工作后,他会发起拉取请求。在提出PR之前,他会将代码与主分支进行合并。团队中的其他人会审查他的PR,然后批准它。一旦PR获得批准,同一个人就会将其合并到主分支上。

我在6月2日创建了分支,PR于6月14日合并。分支中有3个不同文件的3个提交。随后,另一位开发者的分支在6月26日合并。他也修改了我更改的2个文件。现在,当我检查文件历史记录时,我没有看到我的提交。在我更改的3个文件中,只有1个文件的更改存在,并且它们显示正确的提交号码。而另外2个提交在文件历史记录中没有显示。我可以猜测,我的更改被覆盖了,但是文件的Git历史记录必须显示提交。

有人知道这是怎么回事吗?我的意思是,如何在Git历史记录中使特定文件的提交消失。

谢谢 Aniruddha


在此期间是否发生了任何强制推送? - MaNKuR
@MaNKuR:很可能是的。我没有确定的答案,因为我们在三个不同的地方工作。 - Aniruddha
1个回答

0

我们公司使用类似的流程:

  1. 我们在问题分支中工作
  2. 在BitBucket中创建拉取请求
  3. 高级开发人员审核并批准(或拒绝)
  4. 如果没有合并冲突,则合并
  5. 如果存在合并冲突,则必须解决它们,然后再合并

请注意,这里说的是合并,而不是变基。对于不谙此道的人来说,变基充满了危险。当你变基时,你放弃现有的提交,并创建类似但不同的新提交。如果你将其推送到BitBucket并且其他人将其下拉并根据其进行工作,然后你使用 git rebase 重新编写这些提交并再次推送它们,你的同事将不得不重新合并他们的工作,当你尝试将他们的工作拉回到你的工作时,事情会变得混乱。可能发生了类似这样的事情,其中一位同事在你的分支处于外部状态时(或者他们自己的分支处于外部状态时)重写了他的工作并覆盖了你的提交。可以通过审慎使用 git log 来弄清楚哪个提交是哪个,然后解决这个问题。

从现在开始,我建议合并而不是变基。如我上面提到的,如果在拉取请求中没有合并冲突,请什么都不要做。如果有,则请按以下过程解决:

git fetch origin <Team's Main Branch>
git merge FETCH_HEAD <your branch>
-- make and stage fixes
git commit
git push

谢谢你关于rebase和merge的建议。可以解释一下具体会发生什么以及如何验证吗? - Aniruddha

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