【问题标题】:How to undo a discard changes in VSCode如何撤消 VSCode 中的丢弃更改
【发布时间】:2021-08-05 12:46:22
【问题描述】:

我是 git 新手,我正在构建一个有几个分支的项目。 我在分支 B 中进行了未提交的更改,然后运行以下命令:

git checkout -b C

移动到新的分支,我们称之为分支 C。

在分支 C 中,我取消提交这些更改,从那时起我无法取回这些更改,即使我返回分支 B。

我不确定我是否签出一个分支,这意味着它保存在某个地方。

有办法解决吗?

【问题讨论】:

  • 如果你签出一个新的分支,你会随身携带对文件所做的更改,所以没有办法让它们恢复
  • “我取消提交这些更改”是什么意思?
  • @matt 当我说“取消提交”时,我的意思是我没有提交更改,所以基本上在结帐到新分支之前我什么也没做

标签: git visual-studio-code git-branch


【解决方案1】:

Git 不会跟踪您没有告诉它跟踪的更改。

所有未提交的更改都只是浮动的。当您使用checkout 时,这些更改会随着您进入新分支。如果您销毁这些更改而不保存它们,它们就会消失。

如果您想保存分支上的更改以便稍后返回,您可以使用git stash,这会保存当前提交时未提交的更改并将它们从您当前的角度清除。

【讨论】:

  • Git 根本不会“跟踪更改”。它存储提交。
  • 据我所知,在 git 中,提交存储为差异;或者,用普通英语来说,它们是变化,被跟踪。
  • 什么时候改变了,现在 git 做了什么?
  • 它从未改变过。 Git 一直关注的是提交,即快照。可能想查看我的biteinteractive.com/…,请参阅提交部分。
  • 谢谢,比起开发,我更熟悉 git 的起源。我记得 git 最初(在它被命名之前)是一种捆绑补丁文件并通过电子邮件发送它们的方式。后者后来改为 ssh;但是,将提交视为对先前提交的更改的方式很好地揭示了合并、挑选和历史修改操作的工作和行为方式。
猜你喜欢
  • 2019-10-12
  • 2014-04-15
  • 2014-10-08
  • 2016-06-03
  • 2012-07-10
  • 1970-01-01
  • 2015-03-08
  • 1970-01-01
  • 2012-11-16
相关资源
最近更新 更多