【问题标题】:How to undo the changes I made in a git branch?如何撤消我在 git 分支中所做的更改?
【发布时间】:2016-03-07 22:41:06
【问题描述】:

创建新的 git 分支后,我删除了一些文件。然后我决定放弃这些更改并删除分支而不合并。但是文件没有回来。我该怎么办?

我遵循的步骤:

  • git checkout -b newbranche
  • 我在 IDE Cloud9 中工作并删除了一些文件,包括模型和迁移文件。
  • git checkout mastergit branch -D newbranche
  • 我认为这应该撤消所有更改/删除的文件。我重新启动了 IDE 并刷新了它的资源管理器(在那​​里您可以看到所有文件和文件夹),但我删除的文件不再存在。我没有合并更改怎么会这样?
  • 在主分支中,如果我输入git status,我会在“未暂存的更改”下获得所有已删除文件的概览。它还说:使用“git checkout -- ...”来丢弃工作目录中的更改。

如何完全撤消我在“newbranche”分支中所做的更改/删除文件?

【问题讨论】:

  • 你是用哪个命令删除文件的?
  • 如果您删除的文件正在被 git 跟踪并且它们存在于 master 分支上,那么在您执行您所做的操作后它们就会存在。我的猜测是它们没有被 git 跟踪,所以你只是删除了系统上的文件,在这种情况下,除非你在某处有备份,否则你无法恢复它们。
  • 在 IDE Cloud9 中,我只是在 IDE 的资源管理器中右键单击该文件并选择删除。
  • 文件已被跟踪。如果我去 bitbucket,删除的文件仍然存在于 master 分支的源代码下。看起来更像是我删除了 master 分支中的文件(鉴于我在 master 分支中为 git status 提到的输出)但尚未提交这些更改。
  • 那么就做git checkout master; git reset --hard origin/master。注意:这将撤消您自 origin/master 以来所做的任何提交,并将删除您可能拥有的对跟踪文件的任何更改。

标签: git cloud9-ide


【解决方案1】:

我想说这是你需要非常小心的情况(这不会删除未跟踪的添加文件,但会撤消任何修改或删除)

git fetch
git reset --hard origin/master

【讨论】:

    猜你喜欢
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 2015-08-30
    • 2016-12-07
    • 2021-08-05
    相关资源
    最近更新 更多