如何恢复到 Git 提交?

Sab*_*Sab 17 git

我刚开始在 Windows 上使用 Git,我有一个小问题。当我git commit和一条消息一起说时,我意识到 git 提交了文件。但是它究竟在哪里存储提交的文件?

假设我进行了一些更改,并希望使用 Git GUI 恢复到我的第三次提交。我该怎么做?

wan*_*wni 44

上面的答案不太正确 -git revert <ID>没有将您的存储库设置为该提交 -git revert <ID>创建一个新提交来撤消由 commit 引入的更改<ID>。它或多或少是一种“撤消”提交并将该撤消作为新提交保存在您的历史记录中的方法。

如果要将分支设置为特定提交的状态(如 OP 所暗示的那样),则可以使用git reset <commit>, 或git reset --hard <commit> 第一个选项仅更新 INDEX,使工作目录中的文件保持不变,就像您进行了编辑一样,但是尚未提交。使用 --hard 选项,它将工作目录的内容替换为<commit>.

git reset将更改历史记录的警告说明——如果我进行了多次提交,然后重置为第一次提交,则后续提交将不再出现在提交历史记录中。如果任何丢失的提交被推送到公共存储库,这可能会导致一些严重的问题。确保您只使用它来摆脱尚未推送到另一个存储库的提交!

  • git push -f 从来都不是一件好事! (2认同)
  • 我不同意,@MikeW。如果您在一个分支上单独工作并希望其历史记录整洁且合理,例如针对分叉存储库处理拉取请求,那么“git push --force”是完全没有问题的。如果您与合作者密切协调,这也没有问题,他们只需要强制拉动您的更改,然后再继续他们这边的工作即可。 (2认同)

Dar*_*s22 8

Git commit 只将它保存到舞台上,它在您的计算机本地。使用 Push 将其更新到远程服务器(如 github)。

使用git revert <ID>恢复到先前的承诺。每个提交都有一个识别代码。

有关还原的更多详细信息,请参见此处

  • 错误的答案。这只会恢复这个特定的提交。 (8认同)