【问题标题】:Git changes are missing缺少 Git 更改
【发布时间】:2020-03-26 08:29:45
【问题描述】:

我们已使用 alm 合并请求对一个文件进行了更改。一个月后,我们注意到我们的更改丢失了。

我们尝试查看该文件的日志,但在那里也没有看到我们的更改。

但是当我们看到提交 id 为 2e02e42d6b5094809295d375150d13238318968d 的日志时。我们可以看到我们的更改已正确合并。 提交 id 的 Git 日志

 git log 2e02e42d6b5094809295d375150d13238318968d
commit 2e02e42d6b5094809295d375150d13238318968d
Merge: 9e108526c5 c75d3cc631
Author: Sreekumar Menon <sreekumar.menon@oracle.com>
Date:   Wed Feb 19 11:19:43 2020 -0800

    Merge-Request: 12615 from 'users/amit.tiwary/enh30472668' into 'develop'

文件的 Git 日志

 git log -p PrePostScripts.xml
commit 1870c07e6b0af5b63f92001f546a58488ee42979
Author: joshua.kesselman <joshua.kesselman@oracle.com>
Date:   Tue Apr 2 13:04:22 2019 -0700

请告诉我如何检查提交 2e02e42d6b5094809295d375150d13238318968d 发生了什么。

【问题讨论】:

  • 也许后来有人删除了这些更改?
  • 如果是这种情况,我们应该在日志中看到。请帮我检查一下
  • 编辑您的问题并准确显示您要检查的命令。

标签: git github alm


【解决方案1】:

在合并提交中注意这一点:

Merge: 9e108526c5 c75d3cc631

9e108526c5 是合并发生时 develop 分支的 HEAD,c75d3cc631 是合并分支的 HEAD。通过以下方式开始调查:

git checkout c75d3cc631

并调查存储库的状态。那里应该存在正确的更改。您现在应该开始一个 bisect 以查看哪个提交删除了更改。要开始对分,请执行以下操作:

git bisect start

由于您目前在 c75d3cc631 中并且更改在那里,请将其标记为良好:

git bisect good

然后切换回 HEAD 并将其标记为错误,因为那里缺少更改:

git checkout develop
git bisect bad

Git 现在会在中间自动检出一个提交。看看有没有变化。如果没有,请执行git bisect bad 并且 git 将继续。一旦 git 检查出确实存在更改的提交,请执行 git bisect good。继续这个过程,直到 git 告诉你它找到了导致问题的提交。

【讨论】:

  • 嗨 Nikos - 在这种情况下,为什么对文件“PrePostScripts.xml”所做的更改丢失了。它如何识别覆盖更改的人
  • @Paul git show 1870c07 是否显示正确的更改?
  • git show 1870c07 commit 1870c07e6b0af5b63f92001f546a58488ee42979 作者:joshua.kesselman 日期:Tue Apr 2 13:04:22 2019 -0700 BUGID: 2928052 : 审阅者: 影响区域: 测试用例:
  • 我的问题是提交 2e02e42d6b5094809295d375150d13238318968d 最后发生了什么
  • @Paul 什么意思?根据您发布的内容,它就在那里,它只是一个合并提交。 git show 2e02e42 不应显示任何更改。是吗?
【解决方案2】:

在我的例子中,一个特性分支与开发合并并覆盖了我所做的更改

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 2016-10-03
    • 2021-10-07
    • 2013-03-03
    • 1970-01-01
    • 2017-05-31
    • 2017-08-26
    相关资源
    最近更新 更多