【问题标题】:How to clone previous repo version to local machine?如何将以前的 repo 版本克隆到本地机器?
【发布时间】:2015-07-21 07:27:34
【问题描述】:

我不小心从在线 GitHub 存储库中删除了所有内部文件 - 目录现在是空的,但仍然存在 - 加上存储库也已从本地计算机中删除

通常会使用 GitHub 克隆来获取机器上的 repo,在线版本的 git revert 等,但由于显而易见的原因,这将不起作用

在这种情况下,如何恢复到项目的先前版本(一个提交落后于当前版本)?

请帮忙!

【问题讨论】:

    标签: git github command-line git-commit


    【解决方案1】:

    不要惊慌!有many ways to undo commits and pushes in Git

    首先,克隆存储库。它将下载项目的完整历史记录。

    然后您可以使用git revert HEAD 恢复提交。这将添加一个新的提交来撤消最后一个。然后像往常一样简单地推送该提交。这是最简单的事情,但它会在历史上留下一个错误的提交。

    您的另一个选择是撤消提交。这可以通过将主分支移回一个提交来完成。使用git reset 任意移动分支。 git reset --hard HEAD^HEAD^ 是当前提交之前的提交。 --hard 表示要像结帐一样让您的工作目录匹配 HEAD^。我有git reset --hard HEAD^ 别名为undo。然后推送提交,但您必须使用git push --force,因为您没有在现有提交之上添加。

    顺便说一句,这就是为什么每次提交后推送是一个坏习惯的原因。撤消尚未推送的更改要容易得多。

    【讨论】:

    • 避免了危机....感谢您非常清晰且写得很好的回复,我已按照上述说明进行操作,并且很高兴地说我仍然有一份作为初级开发人员的工作(几乎没有)...非常好'超人”,谢谢施韦恩
    • @Mervodactyl 不客气!我很高兴它成功了。版本控制的一大优点是它可以让开发人员非常容忍愚蠢的错误,特别是如果您认为历史是不可变的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 2017-08-15
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多