【发布时间】:2015-07-21 07:27:34
【问题描述】:
我不小心从在线 GitHub 存储库中删除了所有内部文件 - 目录现在是空的,但仍然存在 - 加上存储库也已从本地计算机中删除
通常会使用 GitHub 克隆来获取机器上的 repo,在线版本的 git revert 等,但由于显而易见的原因,这将不起作用
在这种情况下,如何恢复到项目的先前版本(一个提交落后于当前版本)?
请帮忙!
【问题讨论】:
标签: git github command-line git-commit
我不小心从在线 GitHub 存储库中删除了所有内部文件 - 目录现在是空的,但仍然存在 - 加上存储库也已从本地计算机中删除
通常会使用 GitHub 克隆来获取机器上的 repo,在线版本的 git revert 等,但由于显而易见的原因,这将不起作用
在这种情况下,如何恢复到项目的先前版本(一个提交落后于当前版本)?
请帮忙!
【问题讨论】:
标签: git github command-line git-commit
不要惊慌!有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,因为您没有在现有提交之上添加。
顺便说一句,这就是为什么每次提交后推送是一个坏习惯的原因。撤消尚未推送的更改要容易得多。
【讨论】: