GIT分支编辑在Master Branch上结帐文件后丢失



有什么想法恢复我在下面步骤2中所做的更改?

  1. GIT结帐新分支Foo
  2. 对foo.txt进行了一些更改
  3. 保存foo.txt(虽然没有提交(
  4. git结帐回到分支机构
  5. git Checkout文件foo.txt
  6. 对foo.txt进行了一些更改
  7. 保存foo.txt(no commit(
  8. Git Back Back Branch Foo
  9. 步骤#2的foo.txt中的所有更改都消失了

如果更改该文件后在该文件上运行git add,则内容已在.git中注册 - 它在那里存在,可以检索。虽然不容易 - 您必须首先找到Git创建的所有最新对象:

find .git/objects/ -type f -printf "%T+t%pn" | sort

这些是通过修改日期对其进行排序的,因此最近创建了最后一个。向上走 - 遍历每个对象并运行此命令,直到找到内容:

git cat-file -p [40 letter hash including 2-letter directory name]

其中一些对象不是文件,而是树(目录(并提交,跳过它们。

如果您不运行 git add,则Git根本不知道该文件,因此您不能要求Git回收文件。

最新更新