【问题标题】:accidentally rolled back to a previous commit in git意外回滚到 git 中的先前提交
【发布时间】:2014-02-25 00:25:13
【问题描述】:

我是 Git 新手,不知道我做错了什么。例如,我在 master 旁边有一堆分支 - 填充布局、数据上传、登录等。当我不得不更改布局中的某些内容时,我已经转移到一个新分支。所以我认为最好回到填充布局分支并在那里进行更改。所以我输入了git checkout filling-layout,这删除了我在布局中的一堆东西,并返回到以前的版本,我的所有更改都消失了。我以为我已经提交了所有更改后的填充布局并将其上传到 github 和 heroku。

  • 知道如何取回它吗?
  • 还有谁能解释为什么会发生这种情况?
  • 当您必须进行一些小的更改时,最佳做法是什么? 可能会进入之前提交的分支?
  • 是创建一个新分支更好,还是你可以检查现有的分支? 分支进行更改。

【问题讨论】:

  • 听起来你的新作品可能还在。查看您进行新工作的分支,看看它是否会恢复。

标签: git heroku github


【解决方案1】:

尝试检查上一个分支。

这可能有效

git checkout -

它会尝试检查你在当前分支之前所在的分支(类似于cd -)。

一旦你在 git 中提交了你的更改,就很难释放它们。签出一个分支将更改工作树以匹配该分支中的内容,但切换回来会将工作树的状态恢复到前一个分支的状态。

另一种查找先前提交的方法是使用git reflog。这将列出 HEAD 所做的提交,并使用哈希可以检查其中任何一个。

【讨论】:

  • 谢谢克拉斯。那么我应该尝试输入您提到的命令还是输入分支名称。
  • @amey1908 都可以。 git checkout - 如果您忘记它是什么分支,那就太好了。
  • git 不允许我检出另一个分支,因为我收到错误,错误:您对以下文件的本地更改将被检出覆盖:.idea/workspace.xml。所以我将 .idea/ 添加到我的 .gitignore 中,但我必须在签出另一个分支之前提交我的更改。我担心这个提交会覆盖我的填充布局分支,该分支已经删除了我的所有更改。应该可以吗?
  • +1 表示- 符号。我不知道这一点,尽管我每天使用 cd - 一千次。
  • @amey1908 会好的。提交对filling-layout 的更改不会覆盖其他提交。事实上,您无法更改 Git 中现有的提交,并且您始终可以恢复到提交的状态。这是 Git 的优势之一
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-29
  • 2016-10-14
  • 2021-05-27
  • 2016-07-29
相关资源
最近更新 更多