【问题标题】:Access older Git commits after accidentially pulling from remote repo with different commit history意外从具有不同提交历史的远程仓库中提取后访问较旧的 Git 提交
【发布时间】:2020-12-06 14:34:12
【问题描述】:

我有一个本地 Git 存储库,现有提交跨越数月。我在 GitLab 上创建了一个新的 repo,用一个 README 文件初始化,所以它有一个提交。

将源添加到我的本地存储库后,我拉取了,现在我只看到一个来自源的提交,而我本地存储库历史中的所有其他提交都消失了。 .git 文件夹仍然是 6GB。

删除来自源的提交并再次访问我的原始提交的正确方法是什么?

【问题讨论】:

  • git reflog 向您展示了什么?
  • 你输入了什么命令,向你展示了这个提交历史悠久?
  • 来自空存储库的 git pull 应该完全没有效果。在此处显示您的确切命令将有助于其他人诊断真正出了什么问题。
  • @jonrsharpe 显示拉取之前的所有提交,谢谢。
  • @LeGEC git log

标签: git ubuntu gitlab


【解决方案1】:

部分成功:

如何找回不可见的提交:https://megakemp.com/2017/10/19/the-invisible-commits-part-one/

列出所有提交:git reflog

我们看到所有的提交,在从空的远程仓库拉取之前,pos 3 将是我们的本地仓库:

9518fc7 (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: reset: moving to HEAD
9518fc7 (HEAD -> master, origin/master, origin/HEAD) HEAD@{1}: rebase finished: returning to refs/heads/master
9518fc7 (HEAD -> master, origin/master, origin/HEAD) HEAD@{2}: pull: checkout 9518fc7b174ce9cfc87124e510128b1b0f8883d8
f468053 HEAD@{3}: checkout: moving from b894f7ca01f8d1418d9b83bc22e7f728e42e16ba to master
b894f7c HEAD@{4}: checkout: moving from master to b894f7ca01f8d1418d9b83bc22e7f728e42e16ba
f468053 HEAD@{5}: rebase: updating HEAD
f468053 HEAD@{6}: rebase: aborting
bd4c2c6 HEAD@{7}: rebase: checkout origin/master
f468053 HEAD@{8}: rebase: updating HEAD
f468053 HEAD@{9}: rebase: aborting
bd4c2c6 HEAD@{10}: rebase: checkout origin/master
f468053 HEAD@{11}: checkout: moving from f468053e2a1c646b0406868b900c180d974b1bc7 to master
f468053 HEAD@{12}: checkout: moving from bd4c2c6c5e7b5e9fc385f582df3bf0bd2028de11 to f468053e2a1c646b0406868b900c180d974b1bc7
bd4c2c6 HEAD@{13}: checkout: moving from master to bd4c2c6c5e7b5e9fc385f582df3bf0bd2028de11
f468053 HEAD@{14}: commit (amend): - release 0.8.33
bd4c2c6 HEAD@{15}: commit: - release 0.8.33

这失败了:git reset --hard master~3 -- 有错误:fatal: Failed to resolve 'master~3' as a valid revision.

这有效:git reset --hard @{3}

好吧。它恢复了旧的历史记录,但没有按照上面的列表结束应该是 pos 3 的提交。但至少我可以再次看到我所有的提交。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 2013-11-25
    • 2017-04-11
    • 2014-05-05
    • 2022-01-22
    • 2015-06-07
    • 2015-09-02
    相关资源
    最近更新 更多