我有一堆独立的分支,我想合并它们,因为它们中的每一个都是对程序不同部分的更新.
我想我应该把它们合并但是我跑完git commit -a了每个分支.
然后我意识到整个程序都回到过去了,所以我跑了一个git reset --soft HEAD(我在某个地方读过一篇文章,这应该有帮助),但那没有做任何事情.
我也从git那里得到了关于手动删除一些的消息,./git/index.lock所以我把它移到了./git/backup_of_index.lock,但这似乎也没有做任何事情.
如何修复我的存储库并合并所有分支?
Gre*_*ill 14
在这种情况下最重要的git命令是git reflog.reflog会跟踪每个特定分支头的所有更改,并且该git reflog命令会列出分支头的所有更改及时返回.
如果你可以使用reflog识别一个"好"的提交id(并且它会在那里,某处),那么你就要领先于现在的位置.如果有一个好的提交id abc123,那么命令:
git checkout -b rescue abc123
Run Code Online (Sandbox Code Playgroud)
创建一个rescue在提交ID 处调用的新分支abc123.
当我学习git时,我有类似的"我在哪里,我是怎么来到这里的?" 时刻.我在不同的Stack Overflow问题上了解了关于垃圾邮件的问题,了解Git是最有价值的事情.
错误:
当你的代码有意义时,你不应该涉足不熟悉的领域。如果你想这样做,至少要有一个后备计划。
灾难恢复似乎只对那些最需要它的人来说很重要,但到那时就为时已晚了。
我完全赞成实验,但我讨厌看到这种情况,我为开发人员感到难过,因为我太了解他的鞋子了,但是一旦你学会了这个错误,你就永远不会忘记它。
在你决定玩之前,把你的代码扔到其他地方,这样当事情发生时你就可以回到你的舒适区,继续作为一个快乐的开发人员工作,并在完成工作后回去玩。