今天碰到了一个关于Git的问题,Git Community Book
中文版
的译者liuhui998帮忙解决了,感谢!记录如下:

Q:

我发现丢失了一个重要的文件,执行步骤如下:

  1. mvc/view/Fight.as移动到了mvc/Fight.as,做了大量的修改,做了一次提交;
  2. 使用git svn rebase,此时git提示mvc/view/Fight.as冲突;
  3. 执行git rm mvc/view/Fight.as移除了这个文件;
  4. 执行git rebase –continue,rebase成功;
  5. 执行git svn dcommit提交到svn。

但我随后发现mvc/Fight.as不见了,在历史记录中,也只能找到mvc/view/Fight.as的内容。

请问:还能找回我修改过的mvc/Fight.as么?

A:

试一下git fsck –lost-found,可以找到很多dangling commit。

再用git
cat-file -p
看一下每个commit里面有没有删掉的内容(只看commit即可)

如果有你要想的commit,再执行git rebase ‘commit-name’。

留言

2011-03-23
次访问