繁体   English   中英

在主分支上签出文件后,Git分支编辑丢失

[英]Git branch edits lost after checkout file on master branch

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

  1. git checkout新分支foo
  2. 对foo.txt进行了一些更改
  3. 保存foo.txt(尽管没有提交)
  4. Git结帐回到分支主管
  5. Git结帐文件foo.txt
  6. 对foo.txt进行了一些更改
  7. 保存foo.txt(不提交)
  8. git checkout返回分支foo
  9. 步骤2中foo.txt中的所有更改都消失了

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

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

这些按修改日期排序,因此最后一个是最近创建的。 继续前进-遍历每个对象并运行以下命令,直到找到您的内容:

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

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

如果您没有运行 git add那么Git根本不了解该文件,因此您不能要求Git取回文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM