我修改了分支A中的一些文件,然后使用git add
添加这些修改过的文件。
但我忘了使用git commit
提交对当前分支的修改。然后我使用git checkout B
切换到另一个分支。
当我再次切换到分支A时,我发现在这里找不到任何修改过的东西。
有什么方法可以让修改过的文件回来吗?
答案 0 :(得分:0)
如果git允许您切换分支,即使使用未提交的更改,这些更改也会传送到您切换到的分支。因此,如果您检查这两个分支之间的差异,它将不会显示任何变化。尝试将diff与任何其他基本分支一起使用。希望
答案 1 :(得分:0)
git add
通常将对象写入对象数据库。如果它不再可以从索引或任何提交中访问,那么它将是一个悬空的blob。
$ git fsck --no-reflogs | grep 'dangling blob'
dangling blob 5cd8df407a53f3cf1a00d7df9b92973fc7124649
dangling blob a15ac56b6ac98b0b26c4d30bd299cf5cea817b83
dangling blob a052e2e82624bfa14d7004a30e971cfc543d3759
dangling blob b3cae5cf028ad4728b344193a7c6fe4e76e36af3
dangling blob bb428320e3f8496ee844dfe1826e5f705e47b0c8
dangling blob aa9bc6e7a3078a91a895f9ade9ecb0d3f46783a0
dangling blob 0094f013e9120ac2168248245ee492f1c551754d
dangling blob 896c4a4752fab07a7be22cc068c50d4b8021c8a9
dangling blob f6fc725dc3f01cedee7933651e202fa1e46101a4
$ git cat-file -p 5cd8df407a53f3cf1a00d7df9b92973fc7124649
...
您可以逐个打印出来,试图找到丢失的内容。 (另请参阅--lost-found
选项。)
答案 2 :(得分:0)
我在藏匿处找到了它们。在git添加大部分文件之后,我使用git stash期望将剩余的文件存入存储。但似乎修改后的文件都被放到了藏匿处,无论它们是否已经使用git add添加。