git 重置到其他远程分支的代码后还能恢复吗?重置后,没看到历史,内心是崩溃的。

2016-12-22 16:50:32 +08:00
 bbbb

情况是这样的,在一个 git 仓库添加了两个远程仓库地址 A 和 B ,今天重置的时候不小心将 A 的历史重置到 B 仓库去了,导致 B 仓库 15 号以后提交的历史都没了,而 A 又是远程仓库,一直在更新, B 是在 A 上的分支, A 并没有 pull 到本地,提交的历史其实只存在远程分支上。

平时都有随时 push 的习惯,这段时间不知道怎么回事,没有 push ,远程仓库也是只有 15 号及以前的代码。在提交历史里面没有任何记录。

这次重置保留到了最后一次 Push 到 B 上面的历史,疑似跟远程分支有关,这次重置是否改写了 git 的提交记录?

问题到不严重,这几天时间都花在找问题,梳理逻辑上了,花点时间代码就回来了。

想了解下,这样的情况下,还能找回之前的代码了吗?当看到没有历史记录的时候,我其实基本是放弃了的,当时傻逼的把工程关了,不然可能还能在工程里把代码找回些。

看到没有历史记录的瞬间,内心不知道怎么形容。。。

4566 次点击
所在节点    git
25 条回复
bbbb
2016-12-23 09:15:13 +08:00
@darrenfang 我用的这个命令找回来的, git fsck --lost-found 也看了,记录不好区分是哪一次的。
bbbb
2016-12-23 09:16:03 +08:00
@hronro 用图形话的操作,切换的时候会提示。
wweir
2016-12-23 10:19:02 +08:00
@hronro
当前分之有改动的情况下,只能切到没有冲突的分支,这种情况是可以完好切回来的。
如果有冲突,会提示冲突,切不走的。
当然,如果是习惯下各种强制性的命令切,那是自作孽,自认倒霉吧。就好比 rm -rf 怪不得别人。

在公司里,我是一直强烈推荐命令行下用 git 辅助工具如: oh-my-zsh 。不愿意装的话,就 **必须** 做到敲完每个 git 命令之后敲一次 git status
xiuc001
2016-12-23 14:59:32 +08:00
只要你的代码提交过,你就能在 git 上找回来,因为 git 会报错所有的历史提交记录
darrenfang
2016-12-23 16:27:37 +08:00
@bbbb 对, 我一个个看的😂 还好不多

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

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

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

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

© 2021 V2EX