Git commits/merges 丢失代码,从其他人的提交中恢复代码

Git commits/merges losing code, reverts code from other people's commits

我们刚刚开始使用 Azure Devops,并且一直在使用 git 存储库来管理代码。自迁移以来的过去两周,我们有许多开发人员向存储库提交代码,并且注意到偶尔我们会收到将文件恢复到以前状态的提交。

例如,如果开发人员 A 和 B 提交代码,然后开发人员 C 提交,则开发人员 C 将获得合并提交,并且在该提交中,我们看到来自 A、B 的代码被还原。

开发人员在提交之前进行 git 拉动,因此他们应该在提交之前与远程保持同步。

我们看到还原更改的合并提交的标题类似于

将 xxx 的分支 'develop' 合并到 develop

能否请您帮助我了解导致此问题的原因以及如何最好地解决它?是否有使用 git 工具在 Visual studio 中提交代码的推荐方法?

谢谢 阿马尔·辛格

感谢您的回复。你是正确的,这是一个合并冲突问题。在我问这个问题之前,我们怀疑它归结为合并冲突处理问题,但无法理解为什么在后续合并中显示回滚。

我们的案例是这样的:

Dev A、B 提交,然后 Dev C 陷入合并冲突。然后他们合并更改,但取消暂存 A、B 工作,只暂存他们的工作。这导致提交仅显示 Dev C 的更改,但在幕后,git 已恢复 A、B 更改(这些目前不可见)

然后 Dev D 进行本地提交和 git 拉取。这会导致创建第二个提交 ("merge commit")。这被标记为

将 xxx 的分支 'develop' 合并到 develop

当 Dev D 向上推送两个提交时,"merge branch" 提交实际上显示了 A、B 的更改被还原。乍一看好像是Dev D做错了,其实是Dev C做错了

所以我们要给开发者的信息是小心处理合并冲突,不要取消任何人的工作。

感谢您的解释。