项目在本地写了很久,没有 commit 过,今天打开的时候从很早之前的一个 commit 版本打开了,咋恢复

2021-08-01 20:47:53 +08:00
 theSong

今天脑抽,webstorm 打开的时候清了下启动项目那里的缓存,发现代码变成了很久之前的一个版本,git history 是很久之前的了。 能恢复吗?编辑器本身的缓存打开,而不是 git 的某一个版本打开,咋操作?

5601 次点击
所在节点    程序员
51 条回复
theSong
2021-08-02 00:02:28 +08:00
@tonytonychopper 你说的对,以后再也不敢了
theSong
2021-08-02 00:02:56 +08:00
@pengtdyd 我错了。。。
theSong
2021-08-02 00:04:53 +08:00
@CEBBCAT 我重新打开了另一个项目,说我这俩项目是同一个,不能同一窗口打开,然后我就同一窗口打开了。。。
theSong
2021-08-02 00:06:00 +08:00
@Rache1 还好是当天的,而且只损失了 nodemodules 里,重新 install 了就好了
abcysn
2021-08-02 00:13:59 +08:00
@enchilada2020 每天提交,最后 rebase 一下把中间的提交干掉
tonytonychopper
2021-08-02 00:23:14 +08:00
@enchilada2020 这其实就涉及到功能的拆解问题了
limbo0
2021-08-02 00:55:41 +08:00
最后的机会是开 timemachine, 惨痛的经理
msg7086
2021-08-02 04:42:59 +08:00
功能完成的时候重新整理提交不是常规操作么。
simo
2021-08-02 07:45:59 +08:00
有 reflog 就 git 恢复,没有只能尝试文件恢复了
simo
2021-08-02 07:46:58 +08:00
看到找回了。。。
liuzhaowei55
2021-08-02 09:10:20 +08:00
@enchilada2020 如果你自己的 feature 分支,并且不会有各种 lint 那就 commit,并且 push,电脑说不定什么情况就阵亡了。
rationa1cuzz
2021-08-02 09:24:15 +08:00
没有 add reflog 找不到基本上没戏,长长记性吧
swaggeek
2021-08-02 09:28:17 +08:00
@enchilada2020 没写完提交,可以下一次提交的时候用 commit amend 的啊。
landfill
2021-08-02 09:48:40 +08:00
没写完也 commit 写完了 rebase squash 就可以合并
Macv1994
2021-08-02 09:57:17 +08:00
JB 家的 IDE 好像都有 local history 应该可以恢复 我上周也是手贱执行了 git restore app/* 结果第二天打开修改全没了 从 local history 恢复了
RRRoger
2021-08-02 10:25:31 +08:00
local history 是个好东西
acmore
2021-08-02 10:48:50 +08:00
@enchilada2020 Commit 本就不是用于搞一个完整的事的,就是 Feature 层面的 Ctrl + S 而已。真正表述一件完整事情的是 Pull-Request / Squashed Commit
nightwitch
2021-08-02 11:28:37 +08:00
理解错了 commit 的含义。。commit 并不代表某个功能完成,可以理解成 git 层面的保存文件,完成功能的话应该打 release 包和 tag 了。
commit 记录可以 squash 的,平时在 dev 分支开发,开发完了以后把所有的更改 squash 一下提交到 master 分支,这样 master 分支始终是干净的,Dev 分支又保留了很多历史记录。
no1xsyzy
2021-08-02 12:21:09 +08:00
squash 和 WIP commit 都有一个问题:如果后来发现一个 bug 需要 bisect 的话,
1. squash 只能发现在这一个大提交之中。
2. WIP 你需要在一堆提交中找到恰当的可用提交。
这都是不可接受的,所以应当采用细致的功能划分,每次只动一个部分。

顺便还有一个命令是 git fsck --lost-found
可能可以找到未提交被 reset 掉的内容。
xuanbg
2021-08-02 13:11:21 +08:00
每修一个 bug 或者新加一个功能都要 commit 一次才是好习惯

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/793036

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX