【问题标题】:How to revert wrong fetch from remote operation in git如何从git中的远程操作恢复错误的获取
【发布时间】:2012-09-19 10:49:31
【问题描述】:

我有一些带有很多遥控器的 git repo,一些远程分支是独一无二的,我没有本地跟踪分支。

今天我在更改远程 url 时犯了错误(我使用 remote1 而不是 remote2)。

git fetch --all 我的 remote1 被重写后(我在提交 sha 之前看到 +)

这很糟糕,因为我现在无法访问 remote1,而且我无法修改 url 并获取。

在这个错误的提取之后,是否可以从我的本地仓库恢复 remote1 分支?

【问题讨论】:

    标签: git git-fetch


    【解决方案1】:

    Git 在 reflog 中记录引用发生的所有事情(如分支提示和远程分支提示),您必须深入其中才能找到远程的先前 SHA。

    要搜索 git reflog,请输入 git reflog,然后搜索上次提到的 (refs/remotes/remote/branch)。它会给你一个 SHA。

    然后你可以通过运行恢复对这个SHA的远程引用

    git update-ref refs/remotes/remote1/branch
    

    编辑您可以尝试使用Lost Last Git Commit 查找悬空提交。

    【讨论】:

    • 我理解这个想法,但在 reflog 中找不到任何关于 remote1/branch 的信息。很多垃圾,比如“结帐:移动”和“合并:快进”,但没什么有趣的。
    • @KorjavinIvan:抱歉没有线索......你可以尝试使用stackoverflow.com/q/2348292/11343找到悬空提交
    • 是的 git fsck 就是答案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    相关资源
    最近更新 更多