【问题标题】:How to retain git check in history before specific commit?如何在特定提交之前保留 git check in 历史记录?
【发布时间】:2017-07-28 13:17:04
【问题描述】:

需要帮助来取回 Visual Studio 通过所有提交保存的 git 检查历史记录。我的一位团队成员再次推送了所有代码,因此它删除了历史记录。 那么有什么方法可以取回此提交之前的所有历史记录?

【问题讨论】:

    标签: git visual-studio git-rewrite-history


    【解决方案1】:

    这有点不清楚,因为“推送所有代码”没有理由抹去历史记录。听起来您的同事执行了强制推送(可能是因为他们不了解在推送之前需要拉取和合并)。

    如果您的本地仓库以前有历史记录,那么该历史记录应该仍然存在。访问它的最简单方法可能是通过 reflog。试试

    git reflog
    

    它将显示您最近签出的提交,每行一个。如果你能从原始历史中找到一个,你可以去查一下,比如by ​​

    git checkout HEAD@{1}
    

    (reflog 输出将告诉您使用什么编号来检索给定的提交)。

    您还可以使用特定于分支的 reflog

    git reflog master
    ...
    git checkout master@{2}
    

    reflog 不共享,因此只有查看过您要检索的历史记录的单个克隆才能执行此操作。

    【讨论】:

      猜你喜欢
      • 2015-04-09
      • 1970-01-01
      • 2015-10-19
      • 2015-04-20
      • 1970-01-01
      • 2021-12-26
      • 2014-05-05
      • 1970-01-01
      • 2021-06-12
      相关资源
      最近更新 更多