git - 一些合并请求后,我仅来自一个文件的代码消失了,为什么?
问题描述
我今天发生了最奇怪的事情。一系列合并请求仅在一个文件中完全删除了我的代码以及提交。我们当前的 git 流程是这样的:
- 我们有生产代码的“master”分支
- 我们有基于 master 的“develop”分支,用于测试
- 我们有基于 master 的特性分支。编码后,我们将功能分支合并到开发中进行测试
- 为了解决冲突,我必须创建另一个分支,基于开发。我们称这个分支为“my_develop”。我将我的功能分支代码合并到这个分支中,解决冲突,然后从这个分支创建合并请求以进行开发。
今天我们就是这样做的:
我和另一个开发人员(我们在前端团队中只有两个开发人员),创建了两个功能分支,分别称为“my_feature_branch”和“his_feature_branch”。
编码后,我将 my_feature_branch 合并到 my_develop,并创建一个合并请求进行开发。并且这个合并请求被合并了。
之后,其他开发人员完成了自己的编码,将分支master合并到his_feature_branch中以获取最新代码,并从his_feature_branch创建合并请求进行开发。此合并请求已合并。
合并他的合并请求后,我的合并请求中的一些代码更改消失了。我检查了从 my_develop 合并提交到开发后的每个提交,但找不到我的代码被删除的提交。更奇怪的是,只有一个文件中的代码会消失,而其他文件则很好。
我检查了代码消失的文件的历史记录。我的合并请求没有提交。就好像我对该文件的更改从未存在过。
当我从 my_develop 创建另一个合并请求以进行开发时,gitlab 说没有可比较的提交,即使两个分支上的代码不同。
我不知道这里会发生什么。有人可以向我解释为什么会发生这种情况,我该如何解决?
解决方案
这可能是因为您的朋友也处理了与您的文件相同的文件
- 首先,您合并到了 Repo,所以现在 GitHub 中的文件会根据您的文件进行更改。
- 然后您的朋友在同一个 Repo 中进行了 PR,这再次导致 Main 分支根据您朋友的 PR 更改其代码
当您获得任何 PR 时,您应该检查是否存在任何合并冲突,这表明 PR 中是否有任何两个文件已更改,以便您可以根据要保留的文件代码进行选择。
现在我认为你可以回滚。